Ims-db-recovery

提供:Dev Guides
移動先:案内検索

IMS DB-リカバリー

データベース管理者は、システム障害が発生した場合のデータベースの回復を計画する必要があります。 障害には、アプリケーションのクラッシュ、ハードウェアエラー、停電など、さまざまな種類があります。

シンプルなアプローチ

データベースの回復へのいくつかの簡単なアプローチは次のとおりです-

  • データセットに対して投稿されたすべてのトランザクションが保持されるように、重要なデータセットの定期的なバックアップコピーを作成します。
  • システム障害が原因でデータセットが破損した場合、その問題はバックアップコピーを復元することで修正されます。 その後、蓄積されたトランザクションはバックアップコピーに再ポストされ、最新の状態になります。

シンプルなアプローチの欠点

データベースの回復への単純なアプローチの欠点は次のとおりです-

  • 蓄積されたトランザクションの再転記には多くの時間がかかります。
  • 他のすべてのアプリケーションは、回復が完了するまで実行を待機する必要があります。
  • 論理インデックスとセカンダリインデックスの関係が関係している場合、データベースの回復はファイルの回復よりも長くなります。

異常終了ルーチン

DL/Iプログラムはオペレーティングシステムによって直接実行されますが、DL/Iプログラムはそうではないため、標準プログラムがクラッシュする方法とは異なる方法でDL/Iプログラムがクラッシュします。 異常終了ルーチンを使用することにより、システムが干渉し、異常終了(ABEND)の後にリカバリーを実行できるようになります。 異常終了ルーチンは、次のアクションを実行します-

  • すべてのデータセットを閉じます
  • キュー内のすべての保留中のジョブをキャンセルします
  • ストレージダンプを作成して、異常終了の根本原因を見つけます。

このルーチンの制限は、使用中のデータが正確かどうかを保証しないことです。

DL/Iログ

アプリケーションプログラムが異常終了した場合、アプリケーションプログラムによって行われた変更を元に戻し、エラーを修正し、アプリケーションプログラムを再実行する必要があります。 これを行うには、DL/Iログが必要です。 DL/Iロギングに関する重要なポイントは次のとおりです-

  • DL/Iは、アプリケーションプログラムによって行われたすべての変更をログファイルと呼ばれるファイルに記録します。
  • アプリケーションプログラムがセグメントを変更すると、その前のイメージと後のイメージがDL/Iによって作成されます。
  • これらのセグメントイメージは、アプリケーションプログラムがクラッシュした場合にセグメントを復元するために使用できます。
  • DL/Iは、「先書きロギング」と呼ばれる手法を使用して、データベースの変更を記録します。 先行書き込みロギングでは、データベースの変更は実際のデータセットに書き込まれる前にログデータセットに書き込まれます。
  • ログは常にデータベースよりも先にあるため、回復ユーティリティはデータベースの変更のステータスを判断できます。
  • プログラムがデータベースセグメントを変更するための呼び出しを実行すると、DL/Iがロギング部分を処理します。

回復-前方および後方

データベース回復の2つのアプローチは次のとおりです-

  • フォワードリカバリ-DL/Iはログファイルを使用して変更データを保存します。 蓄積されたトランザクションは、このログファイルを使用して再ポストされます。
  • バックワードリカバリ-バックワードリカバリはバックアウトリカバリとも呼ばれます。 プログラムのログレコードは逆方向に読み取られ、データベース内での効果は逆になります。 バックアウトが完了すると、データベースは、その前に別のアプリケーションプログラムによってデータベースが変更されていないと仮定して、障害発生前と同じ状態になります。

チェックポイント

チェックポイントは、アプリケーションプログラムによって行われたデータベースの変更が完全かつ正確であると見なされる段階です。 以下にリストされているのは、チェックポイントに関する注意点です-

  • 最新のチェックポイントの前に行われたデータベースの変更は、逆方向回復によって元に戻されません。
  • 最新のチェックポイント後にログに記録されたデータベースの変更は、フォワードリカバリ中にデータベースのイメージコピーに適用されません。
  • チェックポイント方式を使用すると、回復プロセスが完了すると、データベースは最新のチェックポイントの状態に復元されます。
  • バッチプログラムのデフォルトでは、チェックポイントはプログラムの始まりです。
  • チェックポイントは、チェックポイントコール(CHKP)を使用して確立できます。
  • チェックポイント呼び出しにより、チェックポイントレコードがDL/Iログに書き込まれます。

以下に示すのは、CHKP呼び出しの構文です-

CALL 'CBLTDLI' USING DLI-CHKP
                     PCB-NAME
                     CHECKPOINT-ID

2つのチェックポイント方式があります-

  • Basic Checkpointing -DL/Iリカバリユーティリティがリカバリ処理中に使用するチェックポイントコールを発行できるようにします。
  • シンボリックチェックポイント-拡張リスタート機能と組み合わせて使用​​されるチェックポイントの高度な形式です。 シンボリックチェックポイント設定と拡張再起動により、アプリケーションプログラマはチェックポイントの直後に処理を再開できるようにプログラムをコーディングできます。