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- Это расширенная форма контрольных точек, которая используется в сочетании с функцией расширенного перезапуска. Символическая контрольная точка и расширенный перезапуск вместе позволяют прикладному программисту кодировать программы так, чтобы они могли возобновить обработку в точке сразу после контрольной точки.