tanay
Дата: 15.01.2009 07:01:59
Что есть:
База, раз в неделю делается full бэкап
backup database DB1 to disk='\\s1\share\db1.bkp' with init
(Последний раз сделан 12-01-08 в 01:00)
Каждый день вечером делается diff
backup database DB1 to disk='\\s1\share\db1.dif' with noinit, differential
(Делался 12-01-08 в 23:00 и 13-01-08 в 23:00)
В течение дня каждый час делается
backup log DB1 to disk='\\s1\share\db1.trn' with noinit
В итоге есть 3 файла за текущую неделю:
db1.bkp - дата последнего изменения 12.01, 01:00
db1.dif - дата последнего изменения 13.01, 23:00
db1.trn - дата последнего изменения 14.01, 18:00.
14.01 вечером в 18:30 сервер, на котором работал SQL, вышел из строя. Нужно восстановить базу на другом сервере с максимально свежим состоянием.
Если я все правильно понимаю, то это можно сделать только по состянию на момент последнего созданного diff-бэкапа и файл trn мне не поможет?
Делаю
restore database db1 from disk = 'c:\backup\db1.bkp' with norecovery, stats=10
restore database db1 from disk = 'c:\backup\db1.dif' with recovery, stats=10
но база восстанавливается по состоянию на 12.01. Почему так? Ведь файл db1.dif должен содержать данные за 12 и 13 числа. Что я не понимаю? Как можно посмотреть за какой период есть данные в файле бэкапа?
Помогите, утром людям нужно работать, а я не могу даже определиться сколько дней работы потеряно.
tpg
Дата: 15.01.2009 07:25:59
Ну, а где у вас WITH FILE с номером файла? Зачем вы делаете дифбэкап с опцией NOINIT, у вас есть потребность восстанавливать не только последнее состояние но и промежуточные?