バージョン 8.1.3
 —  DBA タスク  —

リカバリ/再スタート設計

このドキュメントでは、データベースのリカバリと再スタートの設計概念について説明します。 リカバリと再スタートの設計を適切に行うことはシステム設計の重要な部分です。特にデータベース環境では重要です。 Adabas はリカバリおよび再スタートの両機能を備えていますが、これらの機能は別々に考慮しなければなりません。

このドキュメントでは、次のトピックについて説明します。


Adabas リカバリ機能

データベースのリカバリは、最優先されなければなりません。データベーストランザクションが失敗した場合またはトランザクションをキャンセルしなければならない場合は、トランザクションの実効性がなくなるように、データベースをトランザクション開始以前の状態に復元しなければなりません。

標準の Adabas システムは、データベースの保全性を保証するために、トランザクションロジック(ET ロジックと呼ぶ)、拡張チェックポイント/ロギング機能、およびトランザクションを戻すバックアウト処理を備えています。

システム障害後のデータベースの再スタートは、障害が発生する以前にセーブされていたレベルから障害が発生したステップまでの再構築を意味します。また、可能であれば中断したオペレーションを正常に終了し、通常のデータベースオペレーションを継続させることです。 Adabas には、データベースをリカバリするためのリカバリジョブストリームを再構築するリカバリエイドがあります。

リカバリ機能は、当然の機能として特に明示されないことがよくあります。 つまり、何が起こってもシステムがリカバリを行い再スタートできると皆が仮定しています。 しかし、システムのいろいろなユーザーが必要とするリカバリレベルについて決定すべき事柄が存在します。 リカバリ機能は、DBA がイニシアティブをとり、必要な事柄を設定すべき分野です。 まず、システムの各潜在ユーザーにリカバリ/再スタート要求について質問する必要があります。 考慮する必要がある最も重要な点としては次のものがあります。

Top of page

リカバリの計画とインストール

一旦、リカバリ/再スタートが必要だと認められたら、DBA はこれら要求を満たすのに必要な方法の計画に進むことができます。 ここで述べる手法は上記を行うための基本的な手引として使えるはずです。

  1. システム内のさまざまなユーザーがデータを共有するレベルや程度について決定します。

  2. システムに対するリカバリパラメータを設定します。 このパラメータとしては、予測/実際のブレークダウン率、平均の遅れと影響を受ける項目、およびセキュリティや監査に使用する項目を含みます。

  3. システム内に監査処理を含む場合は、これに関する決定を含みます。

  4. リカバリ設計の要点をまとめたアウトラインを準備します。 このアウトライン内には次の情報を含むようにします。

  5. リカバリ/再スタートに必要なすべてのリソースが必要なときに使用できるかどうかが判断できるようオペレーション担当者とも相談する必要があります。

  6. 最終的なリカバリ設計はドキュメント化し、ユーザー、オペレーション担当者、その他システムに関連する人々に知らせ、再確認しなければなりません。

Top of page

要求と機能のマッチング

大体のリカバリ要件が決まったら、次にリカバリ/再スタートを行うための関連機能(Adabas 機能も Adabas 以外の機能も)を選択します。 以下に、リカバリ/再スタートに関連する Adabas 機能について説明します。

Top of page

トランザクションリカバリ

大部分のオンライン更新システムや多くのバッチ更新プログラムでは、次のような特性の入力トランザクションストリームを処理します。

Top of page

エンドトランザクション(ET)コマンド

Adabas ET コマンドを使用すると、次のことが可能です。

Top of page

クローズ(CL)コマンド

Adabas CL コマンドでユーザーの最新 ET データを更新できます(例えばユーザー定義のジョブ完了フラグの設定)。 詳細については、「ユーザー再スタートデータ」を参照してください。

Top of page

ET データの読み込み

Adabas の OP コマンドを使用して、ユーザー再スタート後、または新規ユーザー/Adabas セッション開始時、ET データを読むことができます。 OP コマンドには、ユーザー ID が必要です。このユーザー ID を基に、Adabas はユーザー ET データを格納します。また、ET データを読み込むためのコマンドオプションも必要です。

現在または指定のユーザーの ET データの読み込み、例えばオンライン更新操作の監視時には RE コマンドも使用できます。

Top of page

システムおよびトランザクション障害

自動バックアウトルーチンは、すべての Adabas セッションの開始時に起動されます。 セッションが異常終了した場合、オートバックルーチンによって、中断されたすべてのトランザクションによる処理が、最新の ET までデータベースから削除されます。 個々のトランザクションが中断された場合は、トランザクションが行った更新をすべてデータベースから自動的に除きます。 また、アプリケーションプログラムでも Adabas の BT コマンドを使用して現在のトランザクションの処理をバックアウトするように指定できます。

Top of page

Adabas トランザクションリカバリの制限

トランザクションリカバリ機能はデータベースの内容を回復するだけです。 TP メッセージシーケンスの回復、非 Adabas ファイルの再ポジショニング、あるいはユーザープログラムステータスの退避は行いません。

特定ユーザーのトランザクションによる処理だけをバックアウトすることはできません。このユーザーが追加または更新したレコードに対して別ユーザーがトランザクションを実行した可能性があるからです。

Top of page

Adabas チェックポイントコマンド

次の理由から、ある種のプログラムでは ET コマンドの使用は効果的ではありません。

上記のようなプログラムでは、必要に応じて Adabas チェックポイントコマンド(C1)を使用して、プログラムが更新中である 1 つ以上のファイルのリストア可能地点を設定できます。

Top of page

排他ファイル制御

ユーザーは 1 つ以上の Adabas ファイルの排他更新制御を要求できます。 OP コマンドで排他制御を要求し、他ユーザーがファイルを現在更新中でなければ、排他制御を行えます。 あるユーザーに排他制御が与えられると、他ユーザーはそのファイルを読み込むことはできますが、更新することはできません。 論理順処理か、あるいは検索の結果、一連の多数のレコードを読んだり更新したりするプログラムでは、他ユーザーからの更新を防ぐために排他制御を使用できます。 こうすれば、各レコードをホールド状態にする必要がなくなります。

排他制御ファイルのチェックポイント

排他制御ユーザーは ET コマンドを使用しても使用しなくてもかまいません。 ET コマンドを使用しないときは、C1 コマンドを発行し、チェックポイントを取得することができます。

システムおよびプログラム障害

システムまたはプログラム障害の場合、排他制御下で更新中のファイル(群)は、ADARES ユーティリティの BACKOUT 機能を使用してリストアできます。 このユーティリティは自動的に呼ばれるのではなく、入力として Adabas データプロテクションログが必要です。 ユーザーが ET コマンドを使用していれば、この処理は不要です(「トランザクションリカバリ」参照)。

排他ファイル制御の制限

排他ファイル制御には、次のような制限があります。

Top of page

ユーザー再スタートデータ

Adabas の ET および CL コマンドでは、オプションとして Adabas システムファイルに 2000 バイトまでのユーザーデータを格納できます。 ユーザーごとにユーザーデータを 1 レコード保持します。 ユーザーが新規にユーザーデータを書き読むたびに、このレコードは書き換えられます。 OP コマンドでユーザー ID を指定したときだけ、セッション間でデータが保持されます。

ユーザーデータの第 1 の目的は、プログラムが自身で再スタートが可能となり、リカバリ手順が適切に行われたかをチェックできることです。 ユーザーデータとして有効な情報タイプは、次のものです。

OP コマンドまたは RE コマンドを使用して自分のユーザーデータを読み込むことができます。 別ユーザーのユーザーデータは、RE コマンドを使用し、別ユーザーの ID を指定して読み込むことができます。 全ユーザーのユーザーデータは、コマンドオプション付きで RE コマンドを使用すれば論理順に読み取ることができます。この場合にはユーザー ID を指定してはなりません。

Top of page