Привожу рабочие примеры скриптов по архивированию базы данных и лога транзакций.
Примечание: база находится в режиме Recovery model – Full, название базы wb5.
1) Архивирование базы с перезаписью старого архива:
1 2 3 |
BACKUP DATABASE wb5 TO DISK = 'D:\Backup\wb5.bak' WITH INIT |
Если INIT заменить на NOINIT, то новый архив будет добавляться к предыдущим архивам, соответственно размер файла архива будет пропорционально увеличиваться. При больших базах нужно быть внимательным, чтобы не заполнить быстро пространство на диске. Проще будет, после создания архива, отбрасывать архив по сети на удаленный рессурс.
2) Архивирование лога транзакций базы:
1 2 3 |
BACKUP LOG [wb5] TO DISK = N'D:\Backup\wb5_log.trn' WITH NOINIT |
В этом примере, архивируется лог транзакций, при этом предыдущий архив wb5_log.trn не удаляется.
Если база находится в режиме Simple, то лог транзакций не ведется, поэтому и архивировать его не нужно. В таком случае, архивируется только база данных. При больших базах данных, где происходят постоянные изменения, желательно работать в режиме Full. Тогда архив самой базы можно выполнять раз в сутки, а лог транзакций архивировать, к примеру, раз в 10мин.
Для создания плана архивирования, можно воспользоваться графической частью SQL Server Management Studio. Для этого достаточно создать необходимый план обслуживания, предварительно перейдя в Управление – Планы обслуживания.
Восстановление базы данных из архива базы и лога транзакций.
Для того, чтобы восстановить базу данных из архива, вместе с логом транзакций, можно воспользоваться графической частью из SQL Server Management Studio. Восстановление будет происходить в два этапа, в начале выбираем для восстановления архив базы, и восстанавливаем, потом выбираем архив лога транзакций, и восстанавливаем лог. При желании, эти два этапа можно объединить, выбрав пункт восстановить Файлы и файловые группы.
Cстановимся на базу, и в выпадающем меню выбираем Задачи – Восстановить – База данных (рис.1)
Источник для восстановления, выбрать – С устройства. Здесь необходимо на первом этапе выбрать – архив базы, а на втором этапе – архив лога транзакций. Далее необходимо перейти в раздел Параметры, и выбрать Параметры восстановления – Перезаписать существующую базу данных, если путь к базе не менялся, то в разделе Восстановить файлы базы данных как: , оставляем без изменений. В разделе Состояние восстановления – Оставить базу в неработающем состоянии. (рис.2)
После первого этапа восстановления база перейдет в режим Restoring. Если вдруг передумали восстанавливать логи, то базу можно перевести в рабочее состояния. Для этого необходимо выполнить следующий скрипт:
1 2 3 |
restore database wb5 with recovery |
Теперь необходимо восстановить журнал транзакций.
Теперь необходимо восстановить журнал транзакций. В выпадающем списке, выбираем Восстановить – Журнал транзакций (рис. 3).
Далее, выбираем файл с архивом логов транзакций, и отмечаем, какие архивы хотим восстановить (рис.4).