№19. Журнализация БД, индивидуальный откат транзакции. Flashcards
(6 cards)
Индивидуальный откат транзакции
- Для обеспечения возможности индивидуального отката
транзакции в журнале все записи от данной транзакции
связываются в обратный список - В начале списка находится хронологически последняя запись это
запись о последнем изменении базы данных произведённом
данной транзакцией - В случае индивидуального отката транзакции, хронологически
последние записи могут быть еще не вытолкнуты во внешнюю
память журнала и находиться в буфере оперативной памяти - Для закончившихся транзакций, индивидуальные откаты уже
невозможны
План выполнения индивидуального отката транзакциим
- Выбирается очередная журнальная запись из списка записей данной транзакции
- Выполняется противоположная по смыслу операция:
вместо операции INSERT выполняется соответствующая операция DELETE
вместо операции DELETE выполняется INSERT
вместо прямой операции UPDATE обратная операция UPDATE восстанавливающая предыдущее состояние объекта базы данных
Эти обратные операции называются undo и они тоже журналируются
Если полный откат транзакции выполнен успешно, то в журнал заносится запись о конце транзакции, и с точки зрения журнала такая транзакция является зафиксированной.
Журнализация
процесс записи всех изменений в базе данных в журнал (лог) для обеспечения возможности восстановления данных и отката транзакций в случае сбоя или ошибки. Журнализация помогает сохранить целостность данных и поддерживать надежность базы данных.
Мягкий сбой
сбой, при котором система может восстановиться без потери данных и без необходимости полного перезапуска. Обычно мягкий сбой связан с проблемами в аппаратном обеспечении или программном обеспечении, которые могут быть исправлены без полного остановки системы
Жёсткий сбой
серьезный сбой, при котором система теряет данные или становится недоступной, и требуется полный перезапуск или восстановление из резервной копии. Жёсткий сбой часто вызван критическими проблемами в аппаратном обеспечении или программном обеспечении
Алгоритм Write-Ahead Logging (WAL)
если требуется вытолкнуть во
внешнюю память буферную страницу, содержащую изменённый
объект базы данных, то перед этим нужно гарантировать
выталкивание во внешнюю память журнала буферной страницы
журнала, содержащей запись об изменении этого объекта