Учебники

Распределенная СУБД — Failure & Commit

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

Мягкая Отказ

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

  • Сбой операционной системы.
  • Сбой основной памяти.
  • Сбой транзакции или аборт.
  • Сгенерированная системой ошибка, такая как переполнение целого числа или ошибка деления на ноль.
  • Отказ поддержки программного обеспечения.
  • Отказ питания.

Тяжелая неудача

Тяжелый сбой — это тип сбоя, который приводит к потере данных в постоянном или энергонезависимом хранилище, например на диске. Отказ диска может привести к повреждению данных в некоторых дисковых блоках или к отказу всего диска. Причины серьезного отказа —

  • Отказ питания.
  • Неисправности в СМИ.
  • Чтение-запись неисправности.
  • Повреждение информации на диске.
  • Сбой чтения / записи головки диска.

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

Сбой в работе сети

Сбои в сети распространены в распределенных или сетевых базах данных. Они включают в себя ошибки, вызванные в системе базы данных из-за распределенного характера данных и передачи данных по сети. Причины сбоя сети следующие:

  • Ошибка связи.
  • Перегрузка сети.
  • Повреждение информации при передаче.
  • Сбои сайта.
  • Сетевое разбиение.

Принять протоколы

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

Точка фиксации

Момент времени, когда принимается решение о принятии или прекращении транзакции, называется точкой фиксации. Ниже приведены свойства точки фиксации.

  • Это момент времени, когда база данных согласована.

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

  • На этом этапе все операции транзакции были успешно выполнены, и их результаты были записаны в журнал транзакций.

  • На этом этапе транзакция может быть безопасно отменена, если требуется.

  • На этом этапе транзакция освобождает все удерживаемые ею блокировки.

Это момент времени, когда база данных согласована.

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

На этом этапе все операции транзакции были успешно выполнены, и их результаты были записаны в журнал транзакций.

На этом этапе транзакция может быть безопасно отменена, если требуется.

На этом этапе транзакция освобождает все удерживаемые ею блокировки.

Отмена транзакции

Процесс отмены всех изменений, внесенных в базу данных транзакцией, называется отменой транзакции или откатом транзакции. Это в основном применяется в случае мягкого отказа.

Транзакция Redo

Процесс повторного применения изменений, внесенных в базу данных посредством транзакции, называется транзакцией повтора или повторной транзакции. Это в основном применяется для восстановления после серьезного сбоя.

Журнал транзакций

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

Цели журнала транзакций —

  • Поддерживать протоколы фиксации для фиксации или поддержки транзакций.
  • Чтобы помочь восстановлению базы данных после сбоя.

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

Списки в журналах транзакций

Журнал транзакций поддерживает пять типов списков в зависимости от статуса транзакции. Этот список помогает менеджеру восстановления выяснить состояние транзакции. Статус и соответствующие списки следующие:

  • Транзакция, имеющая запись начала транзакции и запись фиксации транзакции, является подтвержденной транзакцией и поддерживается в списке фиксации.

  • Транзакция, имеющая запись начала транзакции и запись неудачной транзакции, но не запись отмены транзакции, является неудачной транзакцией и поддерживается в списке неудачных транзакций.

  • Транзакция, имеющая запись начала транзакции и запись об отмене транзакции, является прерванной транзакцией и поддерживается в списке прерываний.

  • Транзакция, которая имеет запись начала транзакции и запись транзакции перед фиксацией, является транзакцией перед фиксацией, то есть транзакцией, в которой все операции были выполнены, но не зафиксированы — сохранены в списке перед фиксацией.

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

Транзакция, имеющая запись начала транзакции и запись фиксации транзакции, является подтвержденной транзакцией и поддерживается в списке фиксации.

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

Транзакция, имеющая запись начала транзакции и запись об отмене транзакции, является прерванной транзакцией и поддерживается в списке прерываний.

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

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

Немедленное обновление и отложенное обновление

Немедленное обновление и отложенное обновление — два метода для ведения журналов транзакций.

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

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