Резервирование и восстановление БД

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

В других ситуациях для обеспечения сохранности данных используются операции архивирования и резервирования данных. В большинстве случаев архивирование производится обычными средствами архивации файлов для их компактного долговременного хранения, как правило, на внешних съемных носителях. Функции архивирования данных иногда могут входить и в перечень внутренних функций самих СУБД.

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

И архивирование, и резервирование, помимо технологических целей, преследуют также профилактические цели по еще одной чрезвычайно важной операции, выполняемой администратором АИС — восстановлению данных после сбоев и повреждений. Наличие резервной или архивной копии базы данных позволяет восстановить работоспособность системы при выходе из строя основного файла (файлов) данных. При этом, однако, часть данных, или их изменений, произведенные за время, прошедшее с момента последнего архивирования или резервирования, могут быть потеряны. Такие ситуации особенно критичны при коллективной обработке общих данных, реализуемых клиент-серверными системами. Поэтому в промышленных СУБД, реализующих технологии «клиент-сервер», в большинстве случаев предусматривается ведение специального журнала текущих изменений базы данных, размещаемого отдельно от основных данных и, как правило, на отдельном носителе. Как уже отмечалось, такой подход называется журнализацией. В журнале изменений осуществляются непрерывная фиксация и протоколирование всех манипуляций пользователей с базой данных. В результате при любом сбое с помощью архивной копии и журнала изменений администратор системы может полностью восстановить данные до момента сбоя посредством отката-наката операций транзакций по журналу текущих изменений базы данных.