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

Откуда:
Сообщений: 193
Всем привет!

База работает в режиме FULL
Имеем devices:
db_bkp
dblog_bkp

Формирование бэкапа
-------------------------
Ночью запускается:
1) Копирование сделанных бэкапов на ленту

2) Создание новых бэкапов
BACKUP DATABASE db TO db_bkp WITH INIT, SKIP
BACKUP LOG db TO dblog_bkp WITH INIT, SKIP

В течении суток каждый час бэкапируется лог:
1) BACKUP LOG db TO dblog_bkp WITH NOINIT, SKIP


Имеем фулл бэкап базы db.bkp и бэкап логов dblog.bkp

Если возникает потребность восстановить базу, то делаю
RESTORE DATABASE db
FROM DISK='db.bkp'
WITH
REPLACE,
NORECOVERY

RESTORE LOG db
FROM DISK='dblog.bkp'
WITH FILE=1
REPLACE,
NORECOVERY


Команду RESTORE LOG повторяю для всех забэкапенных логов, а для последнего лога (например всего 3 бэкапа лога)

RESTORE LOG db
FROM DISK='dblog.bkp'
WITH FILE=3
REPLACE,
RECOVERY

Все нормально восстанавливается.

Вопрос, Можно ли и как при восстановлении лога, как-то указать, чтобы он сам последовательно накатывал забэкапенные логи и не требовал их ручного указания?

PS: Еще подскажите правильно ли я понимаю, что при FULL режиме логи базы в процессе работы наполняются данными транзакций и если им не хватает места, то лог растет, но при бэкапе лога, сам лог внутри очищается от лишних данных оставляя только незавершенные транзакции, но его физический размер не изменяется и, чтобы его изменить нужно запустить shrink? Имеет ли смысл после каждого бекапирования лога запускать shrink?
18 июл 12, 15:02    [12883741]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли при восстановлении накатывать бекапы логов автоматически, а не указывая каждый  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну напишите скрипт, который будет их накатывать последовательно.
18 июл 12, 15:27    [12883941]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли при восстановлении накатывать бекапы логов автоматически, а не указывая каждый  [new]
step_ks
Member

Откуда:
Сообщений: 936
SQL Server 2012 Database Recovery Advisor: Simplified Point in Time Recovery
18 июл 12, 16:11    [12884262]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли при восстановлении накатывать бекапы логов автоматически, а не указывая каждый  [new]
smm
Member

Откуда:
Сообщений: 193
Я так подумал, насчет скрипта...


Подскажите как скриптом вытащить количество элементов бэкапа лога (насколько я понимаю эти значения хранятся где-то в системных таблицах базы msdb). А что делать в случае если системные базы тоже пропали, откуда и как тогда в скрипте получить инфу о количестве элементов бэкапа?
18 июл 12, 16:16    [12884290]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли при восстановлении накатывать бекапы логов автоматически, а не указывая каждый  [new]
smm
Member

Откуда:
Сообщений: 193
Забыл добавить сервер SQL 2000 SP4
18 июл 12, 16:19    [12884309]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить