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