Механизм резервного копирования
Любая СУБД должна предоставлять механизм, позволяющий создавать резервные копии базы данных и файла ее журнала через установленные интервалы времени.
Резервное копирование может выполняться как для всей базы данных в целом, так и для изменившейся ее части. В последнем случае в копию помещаются сведения только об изменениях, накопившихся с момента создания предыдущей полной или измененной резервной копии системы. Как правило, резервные копии создаются на автономных носителях.
Файл журнала. Для фиксации хода выполнения транзакций СУБД использует специальный файл, который называют журналом. Этот файл содержит сведения обо всех обновлениях, выполненных в базе данных. В файл журнала помещают записи о транзакциях и записи контрольных точек.
Записи о транзакциях включают в себя:
• идентификатор транзакции;
• тип записи журнала (начало транзакции, операции вставки, обновления или удаления, отмену или фиксацию транзакции);
• идентификатор элемента данных, вовлеченного в операцию обработки базы данных (операции вставки, удаления и обновления);
• копию элемента данных до операции, т.е. его значение до изменения (только операции обновления и удаления);
• копию элемента данных после операции, т.е. его значение после изменения (только для операций обновления и вставки);
• служебную информацию файла журнала, содержащую указатели на предыдущую и следующую записи журнала для этой транзакции (все операции).
Создание контрольных точек.Помещаемая в файл журнала информация предназначена для использования в процессе восстановления системы после отказа. Однако при возникновении отказа может отсутствовать информация о том, с какого прошедшего момента необходимо начинать поиск в файле журнала, чтобы не выполнить накат транзакций, которые завершились с успешной фиксацией в базе данных.
Для ограничения объема поиска и последовательной обработки информации в файле журнала используют метод создания контрольных точек.
Контрольная точка — момент синхронизации между базой данных и журналом регистрации транзакций, при котором все буферы системы принудительно записываются в ее вторичную память.
Контрольные точки создаются через установленный интервал времени и предусматривают выполнение следующих действий:
• перенос всех имеющихся в оперативной памяти записей журнала во вторичную память;
• запись всех модифицированных блоков в буферах базы данных во вторичную память;
• помещение в файл журнала записи контрольной точки, которая содержит идентификаторы всех транзакций, активных в момент ее создания.
Если транзакции выполняются последовательно, то после возникновения отказа файл журнала просматривается в целях обнаружения последней транзакции, выполненной до создания последней контрольной точки.
Если транзакции выполняются параллельно, требуется выполнение наката всех транзакций, которые были зафиксированы со времени создания контрольной точки, и отката всех транзакций, которые были активны в момент аварии.
ЧАСТЬ VI.ПОСТРЕЛЯЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ
УДАЛЕННЫМИ БАЗАМИ ДАННЫХ
ГЛАВА 14. ОРИЕНТАЦИЯ РАЗВИТИЯ СУБД НА РАСШИРЕННУЮ РЕЛЯЦИОННУЮ МОДЕЛЬ