Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли "хакнуть" LSN? / 23 сообщений из 23, страница 1 из 1
30.07.2018, 21:44
    #39681293
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Приветствую, коллеги!

Начну вопрос с описания матчасти:
Итак, ВинСервер 2012R2, МССкуль 2012.
Около трёх десятков 1С-овских баз.
Каждый понедельник в 5 утра делается полный бэкап всех баз.
Каждый час с 10 до 19 делается бэкап транзакций.
Каждый день в 23:00 делается инкрементальный бэкап.
Каждый понедельник в 1:00 папка "SQLBackup" архивируется и сливается на NAS, после чего SQLBackup удаляется со всем содержимым и создаётся заново (ибо диск не резиновый), и в 5 утра в неё начинают падать бэкапы.

Кривовато, конечно, но работало.

Тут, в связи с конфликтом в конторе, понадобилось создать копию базы в состоянии на 27 июня (среда), дабы выцепить какой-то конкретный документ.

Я захожу на NAS с архивами и вижу полное отсутствие *.bak в нужном файле. Есть *.trn, есть *.inc (я поменял расширение инкрементальных архивов в процессе отладки), а собственно полных бэкапов нет. Как корова Ccleaner языком... Кстати, его там и нет.
В более ранних - всё на месте, в более поздних - тоже. А вот примерно за месяц - нет. Но это уже другой вопрос.

В итоге, самый свежий *.bak нашёлся от 11 числа. И, самый прикол в том, что восстановить удалось по инкрементам аж по 20 число, среду, т.е. полный бэкап уже три дня как должен был быть слит на NAS. А тем временем инкременты росли в объёме вплоть до воскресенья, 24 июня...

Так вот, к чему я. Допустим, я делаю полный бэкап базы от последней восстановленной даты. Пытаюсь скормить для восстановления следующий инкрементальный бэкап. Естественно, скуль ругается на прерванную цепочку LSN, понятно. Могу ли я как-то прописать в полный бэкап тот LSN, который будет принят инкрементальным, или, хотя бы, бэкапом транзакций (я так понимаю, их надо все последовательно накатывать?)?

АПДЕЙТ: пока верстался номер, за несколько попыток поднял базу по 24 число включительно. Потом был понедельник и инкременты сдулись со 170 до 5 гигов. Т.е. либо нужен отсутствующий полный бэкап, либо обманывать LSN.

Осталось вытянуть всего 2 дня, но эти дни очень важны...
...
Рейтинг: 0 / 0
30.07.2018, 22:06
    #39681295
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_В итоге, самый свежий *.bak нашёлся от 11 числа. И, самый прикол в том, что восстановить удалось по инкрементам аж по 20 число , среду, т.е. полный бэкап уже три дня как должен был быть слит на NAS .

это если он делался
Rotmistr_А тем временем инкременты росли в объёме вплоть до воскресенья, 24 июня...

а он не делался

Rotmistr_Так вот, к чему я. Допустим, я делаю полный бэкап базы от последней восстановленной даты. Пытаюсь скормить для восстановления следующий инкрементальный бэкап. Естественно, скуль ругается на прерванную цепочку LSN, понятно. Могу ли я как-то прописать в полный бэкап тот LSN, который будет принят инкрементальным, или, хотя бы, бэкапом транзакций (я так понимаю, их надо все последовательно накатывать?)?

АПДЕЙТ: пока верстался номер, за несколько попыток поднял базу по 24 число включительно. Потом был понедельник и инкременты сдулись со 170 до 5 гигов. Т.е. либо нужен отсутствующий полный бэкап, либо обманывать LSN.

перефразирую - парни, как получить неконсистентную базу?

https://technet.microsoft.com/en-us/library/2009.07.sqlbackup.aspx Another misconception about full backups is that they only contain data. Both full backups and differential backups also contain some transaction log records so that the restored component (database, file, or filegroup) can be made transactionally consistent.
...
Рейтинг: 0 / 0
30.07.2018, 22:10
    #39681297
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_Т.е. либо нужен отсутствующий полный бэкап, либо обманывать LSN.Либо уже почитать документацию.

Для восстановления на момент Х нужен полный бекап и непрерывная цепочка бекапов журнала транзакций.
И не важно сколько в этом промежутке было полных и дифференциальных бекапов.
Т.е. если есть полный от 11-го и все бекапы журнала с 11-го и далее, вы сможете восстановить БД на любой момент с 11-го до времени последнего бекапа журнала.
...
Рейтинг: 0 / 0
30.07.2018, 22:20
    #39681301
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
komrad перефразирую - парни, как получить неконсистентную базу?

Неконсистентную = кривую?

Теоретически между 23:00 воскресенья (последний инкремент) и 5:00 понедельника (полный бэкап) транзакций быть не должно, а если и были - нас они не особо волнуют.

Так есть возможность поднять бэкап без контроля целостности LSN?
...
Рейтинг: 0 / 0
30.07.2018, 22:24
    #39681303
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
invmДля восстановления на момент Х нужен полный бекап и непрерывная цепочка бекапов журнала транзакций.
И не важно сколько в этом промежутке было полных и дифференциальных бекапов.

Вы какой из полных бекапов в "этом промежутке" имеете ввиду?
...
Рейтинг: 0 / 0
30.07.2018, 22:29
    #39681306
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
komradВы какой из полных бекапов в "этом промежутке" имеете ввиду?Любой, сделанный после того, который выбран базовым для последующего наката бекапов журнала.
Rotmistr_Так есть возможность поднять бэкап без контроля целостности LSN?Нет.
...
Рейтинг: 0 / 0
30.07.2018, 22:29
    #39681307
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_komrad перефразирую - парни, как получить неконсистентную базу?

Неконсистентную = кривую?

да

Rotmistr_Теоретически между 23:00 воскресенья (последний инкремент) и 5:00 понедельника (полный бэкап) транзакций быть не должно, а если и были - нас они не особо волнуют.

Так есть возможность поднять бэкап без контроля целостности LSN?
"что один человек построил, другой завсегда разобрать сможет" (с)
YouTube Video
...
Рейтинг: 0 / 0
30.07.2018, 22:30
    #39681308
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
invmkomradВы какой из полных бекапов в "этом промежутке" имеете ввиду?Любой, сделанный после того, который выбран базовым для последующего наката бекапов журнала.

я тогда зря пользуюсь copy_only
...
Рейтинг: 0 / 0
30.07.2018, 22:33
    #39681311
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
авторДля восстановления на момент Х нужен полный бекап и непрерывная цепочка бекапов журнала транзакций.
Прямо таки непрерывная? Или Полный + Последний Инкрементальный + Цепочка Транзакций до Нужного Момента ?

авторТ.е. если есть полный от 11-го и все бекапы журнала с 11-го и далее, вы сможете восстановить БД на любой момент с 11-го до времени последнего бекапа журнала.
Ну явно последнего понедельничного бэкапа нет, т.к. инкрементальные резко "похудели". Собственно по воскресенье всё и восстановилось, хотя и непонятно как.
Последняя операция 1С от 22 июня, пятница, так что всё корректно.

Вопрос, как теперь прикрутить туда инкременты от 25 и 26 числа.
...
Рейтинг: 0 / 0
30.07.2018, 22:36
    #39681312
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
авторHEX-редактор никто не отменял
в возможность верю, но, подробностей не знаю

Во, спасибо. Хоть что-то ;-)
...
Рейтинг: 0 / 0
30.07.2018, 22:58
    #39681321
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
komradя тогда зря пользуюсь copy_onlyТрудно сказать. Вы же не сказали для чего им пользуетесь :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
use master;
go

create database DBTest;
alter database DBTest set recovery full;
backup database DBTest to disk = 'C:\Windows\Temp\DBTest_full__01.bak' with init;
go

use DBTest;
go

create table dbo.t (v int);
insert into dbo.t values (1);
go

backup log DBTest to disk = 'C:\Windows\Temp\DBTest_tran__01.trn' with init;
go

insert into dbo.t values (2);
go

backup database DBTest to disk = 'C:\Windows\Temp\DBTest_full__02.bak' with init;
go

insert into dbo.t values (3);
go

backup log DBTest to disk = 'C:\Windows\Temp\DBTest_tran__02.trn' with init;
go

select * from dbo.t;
go

use master;
restore database DBTest from disk = 'C:\Windows\Temp\DBTest_full__01.bak' with replace, norecovery;
restore log DBTest from disk = 'C:\Windows\Temp\DBTest_tran__01.trn' with norecovery;
restore log DBTest from disk = 'C:\Windows\Temp\DBTest_tran__02.trn' with recovery;
go

use DBTest;
select * from dbo.t;
go

use master;
drop database DBTest;
go

...
Рейтинг: 0 / 0
30.07.2018, 23:03
    #39681323
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_Прямо таки непрерывная? Или Полный + Последний Инкрементальный + Цепочка Транзакций до Нужного Момента ?Непрерывная с момента полного (+ возможно дифф), который выбран базовым для восстановления.
...
Рейтинг: 0 / 0
30.07.2018, 23:20
    #39681330
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_,

если 23 и 24 точно никаких операций в базе не было то у всех бэкапов в этот промежуток FirstLSN и LastLSN будет совпадать. и при восстановлении их можно смело пропустить до первого у которого FirstLSN будет равен LastLSN с которого цепочка "заморозилась", а LastLSN будет уже новым. Но все-таки цепочка должна быть непрерывной.
А вот чтобы штатными средствами восстановить разорванную цепочку - не слышал.
Есть некоторые (полу)автоматические тулзы, которые это умеют, в т.ч. есть и фришные. Поищите по сети типа SQL Backup repair или что-то в этом духе. Подозреваю, что все сильно зависит от версии SQL еще ко всему прочему..
...
Рейтинг: 0 / 0
30.07.2018, 23:40
    #39681334
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_АПДЕЙТ: пока верстался номер, за несколько попыток поднял базу по 24 число включительно. Потом был понедельник и инкременты сдулись со 170 до 5 гигов. Т.е. либо нужен отсутствующий полный бэкап, либо обманывать LSN.Не думаю, что можно обмануть, в бакапе же копии страниц, и несогласованно старые страницы нельзя взять и скопировать в базу. То есть LSN - это не пустая формальность.

Если у вас сохранились бакапы логов (с 24 до 27), то можно просто восстановить логи.

Ну и переделать бакапирование, назначить другого ответственного. Надо же, "корова языком", это же важнейшая часть системы.
...
Рейтинг: 0 / 0
31.07.2018, 00:25
    #39681341
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Например:
авторDate Time First Last Checkpoint Size
23.06.2018 18:00:46 2588000000611700001 2588000000635200001 2588000000174700001 388096
23.06.2018 23:08:41 2588000000767500157 2588000000774600001 2588000000767500157 175436800 - DIFF 23.06
24.06.2018 10:01:04 2588000000635200001 2588000000988400001 2588000000846200001 2092032
24.06.2018 11:00:47 2588000000988400001 2588000001011800001 2588000000846200001 388096
24.06.2018 12:00:38 2588000001011800001 2588000001036000001 2588000000846200001 388096
24.06.2018 13:00:36 2588000001036000001 2588000001059600001 2588000000846200001 388096
24.06.2018 14:00:33 2588000001059600001 2588000001083400001 2588000000846200001 388096
24.06.2018 15:00:31 2588000001083400001 2588000001108100001 2588000000846200001 388096
24.06.2018 16:00:32 2588000001108100001 2588000001131500001 2588000000846200001 388096
24.06.2018 17:00:43 2588000001131500001 2588000001155500001 2588000000846200001 388096
24.06.2018 18:01:53 2588000001155500001 2588000001179300001 2588000000846200001 388096
24.06.2018 23:13:44 2588000001314600019 2588000001316000001 2588000001314600019 175436800 - DIFF 24.06
30.07.2018 21:45:00 2588000001319700122 2588000001326100001 2588000001319700122 1295315968 - FULL after restore
25.06.2018 10:05:37 2588000001179300001 2588000001572900001 2588000001479400214 2288640


Кроме последних двух строк - цепочка непрерывная, от диффа до диффа, между ними транзакции, но непонятно, к чему привязаны транзакции - вот эти цифры (чекпойнт 2588000000846200001) откуда взялись? Насколько я понимаю, это привязка к какому-то из бэкапов должна быть?

Разрыв между диффом от 24 числа и бэкапом, сделанным после восстановления до того же диффа действительно есть...

А что если конвертнуть бэкап в SQL-файл и потом импортировать? Такое реально?

Пардоньте за возможно идиотские вопросы, я айтишник широкого профиля, но неглубоких знаний, соответственно скуль знаю поверхностно, что-то штатное сделать могу, а вот если "что-то пошло не так"...

Спасибо всем заранее ;-)
...
Рейтинг: 0 / 0
31.07.2018, 00:30
    #39681342
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
alexeyvgЕсли у вас сохранились бакапы логов (с 24 до 27), то можно просто восстановить логи.

Поподробнее можно? Чьи логи? Где живут?

авторНу и переделать бакапирование, назначить другого ответственного. Надо же, "корова языком", это же важнейшая часть системы.

@#*^@!!! Работало же оно год почти без сбоев...
...
Рейтинг: 0 / 0
31.07.2018, 00:36
    #39681343
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_alexeyvgЕсли у вас сохранились бакапы логов (с 24 до 27), то можно просто восстановить логи.Поподробнее можно? Чьи логи? Где живут?Вот эти, если не удалили: Rotmistr_Каждый час с 10 до 19 делается бэкап транзакций.
...
Рейтинг: 0 / 0
31.07.2018, 00:41
    #39681344
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_,

Бакапы транзакций могут прерваться только при переводе базы из полного режима логирования.
Если вы не переводили, и если файлы сохранились, то можно накатить полный бакап, потом дифф бакап (если есть), а потом восстановить цепочку бакапов транзакций до нужного момента времени.
...
Рейтинг: 0 / 0
31.07.2018, 00:48
    #39681345
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
alexeyvgБакапы транзакций могут прерваться только при переводе базы из полного режима логирования.Или кто-то сделал куда-то бэкап лога. Или кто-то сделал куда-то полный бэкап без copy_only.

UPD. Хотя нет, вру, полный бэкап не ломает цепочку бэкапов лога, только диф-бэкапы ломает. А вот сбрасывать модель восстановления перед ребилдом индекса -- есть умельцы для 1с советовать.
UPD2. Историю снятых бэкапов вроде как еще не советовали смотреть.
...
Рейтинг: 0 / 0
31.07.2018, 10:09
    #39681422
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Гавриленко Сергей АлексеевичalexeyvgБакапы транзакций могут прерваться только при переводе базы из полного режима логирования.Или кто-то сделал куда-то бэкап лога. Или кто-то сделал куда-то полный бэкап без copy_only.

UPD. Хотя нет, вру, полный бэкап не ломает цепочку бэкапов лога, только диф-бэкапы ломает. А вот сбрасывать модель восстановления перед ребилдом индекса -- есть умельцы для 1с советовать.Сделал куда то бакап лога - это не "прервали цепочку", это "пролюбили бакап" :-)

Переводить в симпл - конечно, такое часто делают, даже по расписанию, начитавшись вредных советов.
Ну, тут уж как повезёт.
Да и вообще, они могут не хранить бакапы лога, это всё нужно проверять...
...
Рейтинг: 0 / 0
31.07.2018, 13:33
    #39681551
Rotmistr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Так, коллеги, либо кто-то плохо читает, либо я плохо объяснил.

Повторяю - после полного бэкапа я восстановил две недели через диффы, они же инкременты.
Дальше ни диффы, ни логи не накатываются - цепочка LSN прервана.

Вопрос в чём:
- Можно ли как-то принудительно накатить оставшиеся дни диффами или транзакциями, наплевав на LSN?
- Поправить его?
- Сконвертировать бэкапы в SQL и импортировать штатными средствами студии?

Спасибо.
...
Рейтинг: 0 / 0
31.07.2018, 13:39
    #39681555
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_Повторяю - после полного бэкапа я восстановил две недели через диффы, они же инкременты.Достаточно накатить последний было.

Rotmistr_- Можно ли как-то принудительно накатить оставшиеся дни диффами или транзакциями, наплевав на LSN?
- Поправить его?
- Сконвертировать бэкапы в SQL и импортировать штатными средствами студии?
Сказали же, что нельзя.
...
Рейтинг: 0 / 0
31.07.2018, 18:23
    #39681712
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли "хакнуть" LSN?
Rotmistr_Так, коллеги, либо кто-то плохо читает, либо я плохо объяснил.

Повторяю - после полного бэкапа я восстановил две недели через диффы, они же инкременты.
Дальше ни диффы, ни логи не накатываются - цепочка LSN прервана.Про бакапы лога вы не писали "прервана цепочка LSN". Вы с этиим разберитесь, прервана она или нет, потому что бакапы лога - совсем другая тема, нежели дифф. бакапы.
Rotmistr_Вопрос в чём:
- Можно ли как-то принудительно накатить оставшиеся дни диффами или транзакциями, наплевав на LSN?
- Поправить его? Если у вас есть бакапы логов, и вы не переводили базу в симпл, то можно "накатить оставшиеся дни транзакциями, наплевав на LSN" - это штатный режим восстановления.

Диффами нельзя.
Поправить нельзя.
Rotmistr_- Сконвертировать бэкапы в SQL и импортировать штатными средствами студии?Ну, это в принципе можно, нештатным софтом, только ведь не из чего это делать - у вас же нет бакапов за 27-е, из чего вы будете "конвертировать бэкапы в SQL"?
Гавриленко Сергей АлексеевичRotmistr_Повторяю - после полного бэкапа я восстановил две недели через диффы, они же инкременты.Достаточно накатить последний было.Да, дифф бакапы же не "инкременты", непонятно, зачем накатывать все дифф бакапы...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли "хакнуть" LSN? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]