Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr[GIN]
Member

Откуда:
Сообщений: 4
Опишу ситуацию был ночной бэкап. На следующий день сотрудник удалил документ, который он только что сделал потратив на это час времени и он тут же обратился с просьбой откатить базу на 5 минут назад.

Класический вариант это сделать бэкап лога восстановить ночную копию и копию лога до определенного момента времени.

Но я сначала на всякий случай сделал еще один фулл-бэкап. И тут же из него восстанвился, с целью сделать бэкап-лога, ведь фулл-бэкап включает в себя как данные так логи. Но не тут то было бэкап-лога включил в себя только транзакции начиная с момента второго фулл-бэкапа.

Возможно ли восстановится на момент времени между двумя фулл-бэкапами ? (версия SQL 2000)
1 мар 12, 14:02    [12176833]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
У вас какая рекавери модель?
1 мар 12, 14:04    [12176855]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr[GIN]
Member

Откуда:
Сообщений: 4
У данной базы полная-модель восстановления
1 мар 12, 14:13    [12176925]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Mavr
У данной базы полная-модель восстановления
Тогда нужны все бэкапы лога, содержащие транзакции с момента окончания последнего полного бэкапа перед удалением вашего документа и до момента удаления этого документа.
1 мар 12, 14:25    [12177003]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr[GIN]
Member

Откуда:
Сообщений: 4
Это понятно.

Т.е. Вы хотите сказать когда я сделал второй фулл-бэкап я потерял транзакт-логи ? Разве второй фулл-бэкап не должен содержать транзакт-логи начиная с ночного фул-бэкапа ?
1 мар 12, 14:50    [12177244]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Mavr|GIN|
Но я сначала на всякий случай сделал еще один фулл-бэкап.


Зачем? Какой "всякий случай" вы имели ввиду?

Mavr|GIN|
Но не тут то было бэкап-лога включил в себя только транзакции начиная с момента второго фулл-бэкапа.


И это логично.

Mavr|GIN|
Возможно ли восстановится на момент времени между двумя фулл-бэкапами


Есть такой термин "цепочка лога" (log chain). Каждая цепочка начинается фулл-бэкапом, продолжается обязательными бэкапами лога и опциональными дифф-бэкапами (которые, впрочем, начинают свои собственные под-цепочки). При условии наличия всех бэкапов мы можем восстановиться на любой момент времени внутри цепочки вплоть до самого свежего бэкапа. А ключевым для ответа на вопрос является тот факт что хотя фуллы и диффы и начинают свои собственные (под-)цепочки они не "рвут" цепочку существующую. Понимаете путь решения?
1 мар 12, 14:50    [12177250]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Mavr|GIN|
Разве второй фулл-бэкап не должен содержать транзакт-логи начиная с ночного фул-бэкапа ?


Нет. Фулл-бэкап<>тран-бэкап.
1 мар 12, 15:00    [12177319]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
SamMan
Mavr|GIN|
Но не тут то было бэкап-лога включил в себя только транзакции начиная с момента второго фулл-бэкапа.


И это логично.


Пардон, не верно прочел исходную цитату. Правильный ответ на нее - это НЕ логично и НЕ соответствует BOL:
BOL
...and the log backup includes all log records that were not backed up in a previous log backup.

Без всяких уточнений типа "or full-backup", "or diff-backup".
1 мар 12, 15:10    [12177389]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
второй фуллбекап
Guest
[quot Mavr[GIN]]Это понятно.

Т.е. Вы хотите сказать когда я сделал второй фулл-бэкап я потерял транзакт-логи ?
[/quot]
нет, вы его потеряли когда отресторили второй фулбекап.

[quot Mavr[GIN]]
Разве второй фулл-бэкап не должен содержать транзакт-логи начиная с ночного фул-бэкапа ?
[/quot]нет, фулбекап содержит только ту часть лога, которая необходима для восстановления целостной базы, т.е. фактически лог накопившийся за время бекапирования
.


если бы вы не восстановили второй фулбекап (я же правильно понял, вы его восстановили поверх основой базы), то вы могли бы:
1. сделать бекап лога
2. восстановить первый фулбекап
3. восстановить логи до нужного момента.
1 мар 12, 16:12    [12177990]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr
Member

Откуда:
Сообщений: 41
Предыдущий пост-мой, что-то глюкануло у меня.

SamMan
Mavr|GIN|
Но я сначала на всякий случай сделал еще один фулл-бэкап.


Зачем? Какой "всякий случай" вы имели ввиду?


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

SamMan
Есть такой термин "цепочка лога" (log chain). Каждая цепочка начинается фулл-бэкапом, продолжается обязательными бэкапами лога и опциональными дифф-бэкапами (которые, впрочем, начинают свои собственные под-цепочки). При условии наличия всех бэкапов мы можем восстановиться на любой момент времени внутри цепочки вплоть до самого свежего бэкапа. А ключевым для ответа на вопрос является тот факт что хотя фуллы и диффы и начинают свои собственные (под-)цепочки они не "рвут" цепочку существующую. Понимаете путь решения?


Да это все я знаю.

Но при этом давайте еще раз посмотрим:

1. В начальный момент я имел ночной полный бэкап + текущую рабочую БД с текущим журналом транзакий
2. Для отката назад на 5 минут я должен был сделать бэкап транзакт-лога, восстановить бд без рекавери из ночного бэкапа и восстановить сделанный бэкап транзакт-лога до задонного момента времени

Но вместо 2-го пункта я сначала сделал еще один фулл-бэкап. И затем из него же восстанвился разве я не должен был оказаться опять в состоянии которое было в 1-ом пункте (с тем же состояние цепочки лога), что бы иметь возможность сделать действия из 2-го пункта ? Я предполагал что при восстановлении из полной копии БД должна оказаться в состоянии, которое было до создания этой полной копии. В BOL ведь написано, что полная копия включает в себя копию данных журнала. Проясните плиз почему это не так.
1 мар 12, 16:36    [12178198]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Mavr
Я предполагал что при восстановлении из полной копии БД должна оказаться в состоянии, которое было до создания этой полной копии. В BOL ведь написано, что полная копия включает в себя копию данных журнала. Проясните плиз почему это не так.
Надо не предполагать, а хелп читать, особенно перед затиранием базы. Вместе с полным бэкапом не делается бэкап всего лога, а только той его небольшой части, необходимой, чтобы восстановить базу в согласованном состоянии на момент окончания полного бэкапа.
1 мар 12, 16:46    [12178286]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr
Member

Откуда:
Сообщений: 41
второй фуллбекап
Mavr
Это понятно.

Т.е. Вы хотите сказать когда я сделал второй фулл-бэкап я потерял транзакт-логи ?

нет, вы его потеряли когда отресторили второй фулбекап.

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

если бы вы не восстановили второй фулбекап (я же правильно понял, вы его восстановили поверх основой базы), то вы могли бы:
1. сделать бекап лога
2. восстановить первый фулбекап
3. восстановить логи до нужного момента.


Да спасибо за разъяснения в этом и было мое заблуждение, я считал что фулбэкап содержит и все транзакт-логи. В BOL просто как-то не внятно это написано: "Полная резервная копия содержит все данные заданной базы данных или наборов файлов и файловых групп, а также журналов для обеспечения возможности последующего восстановления этих данных." Плюс поднял сейчас книгу "Руководсто администратора" Брайн Найта которую я читал когда-то там тоже написано дословно "Полное резервное копирование-позволяет получить копию всех данных БД, включая и журнал транзакций. Применение этого типа резервирования позволяет восстановить состояние базы данных на момент резервного копирования."

Я думал что восстановившись из только что сделанного фул-бэкапа я получу то же состояние БД что и было на момент создания фул-бэкапа.

Сообщение было отредактировано: 1 мар 12, 17:00
1 мар 12, 16:55    [12178389]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr
Member

Откуда:
Сообщений: 41
Гавриленко Сергей Алексеевич
Mavr
Я предполагал что при восстановлении из полной копии БД должна оказаться в состоянии, которое было до создания этой полной копии. В BOL ведь написано, что полная копия включает в себя копию данных журнала. Проясните плиз почему это не так.
Надо не предполагать, а хелп читать, особенно перед затиранием базы. Вместе с полным бэкапом не делается бэкап всего лога, а только той его небольшой части, необходимой, чтобы восстановить базу в согласованном состоянии на момент окончания полного бэкапа.


Да посыпаю голову пеплом. Такую операцию раньше делал, но делать их приходится очень редко, поэтому хотел перестраховаться. Хорошо, что ситуация не критичная, документ человек в итоге ввел заново достаточно быстро по накатанной. Но я сейчас на тестовой базе откатаю что бы закрепить и в более серьезной ситуации не наступить на такие грабли.
1 мар 12, 17:04    [12178467]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Mavr
Имея нормальную рабочую базу прежде чем делать операции на уровне все базы разве не логично сделать фул-бэкап если есть такая возможность.


Если у нас есть нормальная цепочка бэкапов (мы проверили, она - есть) - почему для "напряженного" момента не ограничится дифф-бэкапом? Или даже тран-бэкапом? Чем рискуем?
1 мар 12, 17:58    [12178801]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Mavr
Я предполагал что при восстановлении из полной копии БД должна оказаться в состоянии, которое было до создания этой полной копии.


К вашему сведению, при восстановлении фул-бэкапа по умолчанию мы оказываемся в состоянии ПОСЛЕ создания этого самого фула. Это, собственно, та цель ради которой городили огород с винигретом из данных и записей лога в одном выходном bak-файле. А если хотите ДО - опция STOPAT вам "в зубы".
1 мар 12, 18:08    [12178852]     Ответить | Цитировать Сообщить модератору
 Re: Возможно ли восстановление на момент времени при наличии двух full-бэкапов ?  [new]
Mavr
Member

Откуда:
Сообщений: 41
SamMan
Mavr
Я предполагал что при восстановлении из полной копии БД должна оказаться в состоянии, которое было до создания этой полной копии.


К вашему сведению, при восстановлении фул-бэкапа по умолчанию мы оказываемся в состоянии ПОСЛЕ создания этого самого фула. Это, собственно, та цель ради которой городили огород с винигретом из данных и записей лога в одном выходном bak-файле. А если хотите ДО - опция STOPAT вам "в зубы".


Да все все хватит меня пинать. Я все понял.

Спасибо всем за разъяснения.
2 мар 12, 06:49    [12180792]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить