10.5. Резервное копирование и восстановление

 

Архивирование и восстановление базы данных с корректировкой целостности основаны на механизме регистрации изменений, использующем журнал транзакций и контрольные точки.

В журнале транзакций регистрируются все транзакции и все изменения базы данных, произведенные в их рамках. Транзакция не считается завершенной, пока соответствующая запись не будет внесена в журнал.

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

 

Контрольная точка – это операция согласования состояния базы данных в физических файлах с текущим состоянием кэша – системного буфера. С целью улучшения производительности сохраняемые в БД данные сначала помещаются в кэш, а потом система перезапишет модифицированные страницы на диск (отложенная запись), причем пользователь не может знать, когда эта запись производится.

Контрольная точка выполняется командой CHECKPOINT при завершении работы сервера, а также в соответствии с установленным интервалом контрольных точек и включает выполнение следующих операций:

-             запись на диск всех страниц, измененных к началу контрольной точки;

-             запись в журнал транзакций списка незавершенных транзакций;

-             запись в журнал транзакций всех измененных страниц;

-             регистрация завершения контрольной точки в базе данных (а не в журнале транзакций).

 

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

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

Выборочное (дифференциальное) резервное копирование обеспечивает архивирование только тех данных базы, которые были изменены с момента последнего архивирования.

Резервное копирование журнала транзакций обеспечивает архивирование и усечение журнала.

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

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

 

Резервное копирование и восстановление можно выполнить с помощью EnterpriseManager, «мастера» или T-SQL. Для размещения архивных копий должно быть создано логическое устройство (которое может быть и отдельным физическим устройством).

Информация о выполнении резервного копирования сохраняется как запись в системной таблице backupfile базы msdb, что позволяет определить, когда и на какое устройство сделана копия.

 

Процесс восстановления базы данных зависит от типа архива. При восстановлении из дифференциального архива или из архива журнала транзакций необходимо предварительно восстановить БД из последнего полного архива.

 

 

К оглавлению

Назад к разделу "10.4. Управление транзакциями"

Вперед к разделу "10.6. Пример администрирования базы данных в среде MicroSoft SQL Server"