ScholarGate
Ассистент

Восстановление и журналирование

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает, как база данных переживает сбои: протокол упреждающей записи в журнал (WAL), информацию для отмены (undo) и повтора (redo), контрольные точки для ограничения объема работ по восстановлению и стандартный алгоритм восстановления (в частности, ARIES) с его фазами анализа, повтора и отмены. Рассматриваются политики управления буфером (steal/no-steal, force/no-force), которые определяют, какое журналирование требуется. Исключаются протоколы управления параллелизмом, работающие в обычном режиме, и распределенная фиксация, которые являются смежными темами.

Core questions

  • Почему запись в журнал должна достигать постоянного хранилища раньше, чем данные, которые она описывает (упреждающая запись в журнал)?
  • Как отмена (undo) и повтор (redo) восстанавливают согласованное состояние после сбоя?
  • Как политики управления буфером (steal/force) определяют требования к журналированию?
  • Какую роль играют контрольные точки в ограничении времени восстановления?
  • Как алгоритм ARIES структурирует восстановление на фазы анализа, повтора и отмены?

Key concepts

  • упреждающая запись в журнал (WAL)
  • журналирование отмены (undo) и повтора (redo)
  • номер последовательности журнала
  • контрольные точки
  • политики steal/no-steal и force/no-force
  • записи компенсационного журнала
  • фазы анализа, повтора, отмены
  • ARIES

Key theories

Упреждающая запись в журнал
Протокол WAL требует, чтобы записи журнала, описывающие изменение, были принудительно записаны в стабильное хранилище до соответствующей страницы данных, гарантируя, что после сбоя система имеет достаточно информации для отмены незафиксированных и повтора зафиксированных изменений.
Восстановление с помощью отмены/повтора и буферные политики
Необходимость системы в отмене, повторе или обоих зависит от буферных политик: политика steal (запись незафиксированных страниц на диск) требует отмены, а политика no-force (не принудительная запись зафиксированных страниц при фиксации) требует повтора; распространенная комбинация steal/no-force требует и того, и другого.
ARIES
ARIES — это широко используемый метод восстановления, который использует упреждающую запись в журнал, номера последовательности журнала и трехфазный (анализ, повтор, отмена) алгоритм с записями компенсационного журнала для поддержки мелкозернистой блокировки и частичных откатов.

Clinical relevance

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

History

Обзор Хардера и Ройтера 1983 года изложил принципы транзакционно-ориентированного восстановления и таксономию буферных политик. ARIES, разработанный К. Моханом и его коллегами в IBM и опубликованный в 1992 году, стал де-факто стандартным алгоритмом восстановления, сочетающим упреждающую запись в журнал с номерами последовательности журнала и записями компенсации для поддержки мелкозернистой блокировки.

Key figures

  • C. Mohan
  • Jim Gray
  • Theo Härder
  • Andreas Reuter

Related topics

Seminal works

  • mohan1992
  • haerder1983
  • gray1992

Frequently asked questions

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

Methods for this concept

Related concepts