Распределенная СУБД - отказ и фиксация
Система управления базой данных подвержена ряду сбоев. В этой главе мы изучим типы сбоев и протоколы фиксации. В системе распределенной базы данных сбои в широком смысле можно разделить на мягкие сбои, серьезные сбои и сбои сети.
Мягкий отказ
Мягкий сбой - это тип сбоя, который вызывает потерю энергозависимой памяти компьютера, а не постоянного хранилища. Здесь информация, хранящаяся в непостоянном хранилище, таком как основная память, буферы, кеши или регистры, теряется. Они также известны как сбой системы. Различные типы мягких отказов следующие:
- Сбой операционной системы.
- Сбой основной памяти.
- Сбой транзакции или прерывание беременности.
- Ошибка, сгенерированная системой, такая как переполнение целого числа или ошибка деления на ноль.
- Отказ поддерживающего программного обеспечения.
- Сбой питания.
Жесткий отказ
Жесткий сбой - это тип сбоя, который вызывает потерю данных в постоянном или энергонезависимом хранилище, например на диске. Сбой диска может вызвать повреждение данных в некоторых дисковых блоках или сбой всего диска. Причины серьезного отказа:
- Сбой питания.
- Неисправности в СМИ.
- Неисправность чтения-записи.
- Повреждение информации на диске.
- Сбой головки чтения / записи диска.
Восстановление после сбоев диска может быть коротким, если в резерве есть новый, отформатированный и готовый к использованию диск. В противном случае продолжительность включает время, необходимое для получения заказа на поставку, покупки диска и его подготовки.
Ошибка сети
Сбои в сети распространены в распределенных или сетевых базах данных. Сюда входят ошибки, вызванные в системе базы данных из-за распределенного характера данных и передачи данных по сети. Причины сбоя сети следующие:
- Сбой канала связи.
- Перегрузка сети.
- Искажение информации при передаче.
- Сбои сайта.
- Разбиение сети.
Протоколы фиксации
Любая система баз данных должна гарантировать сохранение желаемых свойств транзакции даже после сбоев. Если во время выполнения транзакции происходит сбой, может случиться так, что все изменения, вызванные транзакцией, не будут зафиксированы. Это делает базу данных несовместимой. Протоколы фиксации предотвращают этот сценарий, используя либо отмену транзакции (откат), либо повтор транзакции (откат).
Точка фиксации
Момент времени, когда принимается решение о фиксации или прерывании транзакции, известен как точка фиксации. Ниже приведены свойства точки фиксации.
Это момент времени, когда база данных согласована.
На этом этапе изменения, внесенные в базу данных, можно увидеть в других транзакциях. Все транзакции могут иметь согласованное представление базы данных.
На этом этапе все операции транзакции были успешно выполнены, и их результаты были записаны в журнал транзакций.
На этом этапе транзакцию можно безопасно отменить, если это необходимо.
На этом этапе транзакция снимает все удерживаемые ею блокировки.
Отменить транзакцию
Процесс отмены всех изменений, внесенных в базу данных транзакцией, называется отменой транзакции или откатом транзакции. В основном это применяется в случае мягкого отказа.
Повторить транзакцию
Процесс повторного применения изменений, внесенных в базу данных транзакцией, называется повтором транзакции или повтором транзакции. В основном это применяется для восстановления после серьезного сбоя.
Журнал транзакций
Журнал транзакций - это последовательный файл, в котором отслеживаются транзакционные операции с элементами базы данных. Поскольку журнал является последовательным по своей природе, он обрабатывается последовательно либо с начала, либо с конца.
Цели журнала транзакций -
- Для поддержки протоколов фиксации для фиксации или поддержки транзакций.
- Чтобы помочь восстановить базу данных после сбоя.
Журнал транзакций обычно хранится на диске, чтобы на него не влияли мягкие сбои. Кроме того, журнал периодически копируется в архивное хранилище, например на магнитную ленту, чтобы защитить его от сбоев диска.
Списки в журналах транзакций
Журнал транзакций поддерживает пять типов списков в зависимости от статуса транзакции. Этот список помогает диспетчеру восстановления узнать статус транзакции. Статус и соответствующие списки следующие:
Транзакция, имеющая запись начала транзакции и запись фиксации транзакции, является зафиксированной транзакцией и сохраняется в списке фиксации.
Транзакция, которая имеет запись начала транзакции и запись неудачной транзакции, но не запись прерывания транзакции, является неудачной транзакцией и сохраняется в списке неудачных попыток.
Транзакция, имеющая запись начала транзакции и запись прерывания транзакции, является прерванной транзакцией и сохраняется в списке прерывания.
Транзакция, которая имеет запись начала транзакции и запись транзакции перед фиксацией, является транзакцией перед фиксацией, т. Е. Транзакцией, в которой все операции были выполнены, но не зафиксированы, - хранятся в списке перед фиксацией.
Транзакция, у которой есть запись начала транзакции, но нет записей до фиксации, фиксации, прерывания или неудачи, является активной транзакцией и сохраняется в активном списке.
Немедленное обновление и отложенное обновление
Немедленное обновление и отложенное обновление - это два метода ведения журналов транзакций.
В immediate updateВ режиме, когда транзакция выполняется, обновления, сделанные транзакцией, записываются непосредственно на диск. Старые значения и значения обновлений записываются в журнал перед записью в базу данных на диск. При фиксации изменения, внесенные на диск, становятся постоянными. При откате изменения, сделанные транзакцией в базе данных, отменяются, и старые значения восстанавливаются в базе данных из старых значений, хранящихся в журнале.
В deferred updateВ режиме, когда транзакция выполняется, обновления, внесенные в базу данных транзакцией, записываются в файл журнала. При фиксации изменения в журнале записываются на диск. При откате изменения в журнале сбрасываются, и к базе данных не применяются никакие изменения.