![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В том случае, если нельзя восстановить БД после сбоя автоматически, восстановление БД выполняется в два этапа:
Если в системе есть архив транзакций, то повторное проведение транзакций может проходить автоматически или под управлением пользователя.
Если произошёл сбой процесса сервера, то требуется перезагрузка сервера для восстановления БД. При перезагрузке СУБД может по содержимому системных файлов узнать, что произошёл сбой, и выполнить восстановление автоматически (если это возможно). Восстановление БД в этой ситуации означает приведение всех данных в БД в согласованное состояние, т.е. откат незавершённых транзакций и проверку того, что все изменения, внесённые завершёнными транзакциями, попали на диск.
Для оптимизации регистрации изменений некоторые СУБД могут запи-сывать в журнал информацию о незавершённых транзакциях, предвидя их завершение. Более того, не дожидаясь подтверждения транзакции, СУБД переписывает на диск модифицированные блоки (при формировании контрольной точки). Поэтому в каждый момент времени в журнале тран-закций и в БД может находиться небольшое число записей, модифицированных незавершёнными транзакциями. Эти записи помечаются соответствующим образом. С другой стороны, т.к. изменения сначала попадают в журнал транзакций и только потом в файл базы данных, в любой момент времени БД может не содержать блоков данных, модифицированных подтверждёнными транзакциями. Поэтому в результате сбоя могут возникнуть две потенциальные ситуации:
Для того чтобы разрешить эти ситуации, СУБД автоматически выполняет два этапа при восстановлении после сбоев: прокрутку вперед и прокрутку назад.
После выполнения этих этапов восстановления БД находится в согласованном состоянии и с ней можно работать.
Дата публикования: 2014-11-26; Прочитано: 683 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!