IMS DB - Восстановление
Администратору базы данных необходимо спланировать восстановление базы данных в случае сбоев системы. Сбои могут быть разных типов, например, сбои приложений, аппаратные ошибки, сбои питания и т. Д.
Простой подход
Вот некоторые простые подходы к восстановлению базы данных:
Периодически создавайте резервные копии важных наборов данных, чтобы все транзакции, проводимые с наборами данных, сохранялись.
Если набор данных поврежден из-за сбоя системы, эта проблема устраняется путем восстановления резервной копии. Затем накопленные транзакции повторно разносятся в резервную копию, чтобы обновить их.
Недостатки простого подхода
Недостатки простого подхода к восстановлению базы данных следующие:
Повторная проводка накопленных транзакций отнимает много времени.
Всем остальным приложениям необходимо дождаться выполнения, пока не завершится восстановление.
Восстановление базы данных занимает больше времени, чем восстановление файлов, если задействованы логические отношения и отношения вторичного индекса.
Процедуры ненормального завершения
Сбой программы DL / I отличается от сбоя стандартной программы, поскольку стандартная программа выполняется непосредственно операционной системой, а программа DL / I - нет. Используя процедуру аварийного завершения, система вмешивается, так что восстановление может быть выполнено после аварийного завершения (ABEND). Процедура аварийного завершения выполняет следующие действия:
- Закрывает все наборы данных
- Отменяет все незавершенные задания в очереди
- Создает дамп хранилища, чтобы выяснить основную причину ABEND
Ограничение этой процедуры состоит в том, что она не гарантирует, являются ли используемые данные точными или нет.
DL / I журнал
Когда прикладная программа ABEND отключается, необходимо отменить изменения, сделанные прикладной программой, исправить ошибку и повторно запустить прикладную программу. Для этого необходим журнал DL / I. Вот ключевые моменты о ведении журнала DL / I -
DL / I записывает все изменения, сделанные прикладной программой, в файл, известный как файл журнала.
Когда прикладная программа изменяет сегмент, DL / I создает его изображения до и после.
Эти образы сегментов можно использовать для восстановления сегментов в случае сбоя прикладной программы.
DL / I использует технику, называемую упреждающей записью, для записи изменений в базе данных. При ведении журнала с упреждающей записью изменение базы данных записывается в набор данных журнала до того, как оно будет записано в фактический набор данных.
Поскольку журнал всегда опережает базу данных, утилиты восстановления могут определять статус любого изменения базы данных.
Когда программа выполняет вызов для изменения сегмента базы данных, DL / I заботится о его части регистрации.
Восстановление - вперед и назад
Два подхода к восстановлению базы данных:
Forward Recovery - DL / I использует файл журнала для хранения данных об изменениях. Накопленные транзакции повторно разносятся с использованием этого файла журнала.
Backward Recovery- Обратное восстановление также известно как восстановление после отмены. Записи журнала для программы считываются в обратном порядке, и их влияние в базе данных отменяется. Когда откат завершен, базы данных находятся в том же состоянии, в котором они были до сбоя, при условии, что никакая другая прикладная программа не изменила базу данных за это время.
Контрольно-пропускной пункт
Контрольная точка - это этап, на котором изменения базы данных, внесенные прикладной программой, считаются полными и точными. Ниже перечислены моменты, которые следует отметить о контрольно-пропускном пункте.
Изменения базы данных, сделанные до последней контрольной точки, не отменяются обратным восстановлением.
Изменения базы данных, зарегистрированные после последней контрольной точки, не применяются к копии образа базы данных во время прямого восстановления.
Используя метод контрольной точки, база данных восстанавливается до состояния на последней контрольной точке, когда процесс восстановления завершается.
По умолчанию для пакетных программ контрольной точкой является начало программы.
Контрольную точку можно установить с помощью вызова контрольной точки (CHKP).
Вызов контрольной точки вызывает запись контрольной точки в журнал DL / I.
Ниже показан синтаксис вызова CHKP -
CALL 'CBLTDLI' USING DLI-CHKP
PCB-NAME
CHECKPOINT-ID
Есть два метода контрольной точки -
Basic Checkpointing - Это позволяет программисту выполнять вызовы контрольных точек, которые утилиты восстановления DL / I используют во время обработки восстановления.
Symbolic Checkpointing- Это расширенная форма контрольных точек, которая используется в сочетании с функцией расширенного перезапуска. Символическая контрольная точка и расширенный перезапуск вместе позволяют прикладному программисту кодировать программы так, чтобы они могли возобновить обработку в точке сразу после контрольной точки.