ログ初期化のフェーズでの障害
ログ初期化のフェーズで障害が発生した場合、その状況のいくつかの特性が明らかに現れます。
次の図は、ログ初期化のフェーズで障害が発生したときに存在するイベントを、時系列で示しています。図1: ログ初期化時の障害
RBA の X と Y の間のログ部分がアクセス不能です。 障害がログ初期化フェーズで発生する場合は、 処理は次のように行われます。
- Db2 は、停止状態でない各アクティブ・ログ・データ・セットを割り振り、オープンする。
- Db2 は、最後のログ・レコードが見つかるまでログを読み取る。
- このプロセス中にログに問題が発生し、 Db2 がログの終端を見つけられなくなりました。 Db2 終了し、アベンド理由コードを発行します。 出される可能性のある異常終了理由コードには、以下のものが含まれます。
- 00D10261
- 00D10262
- 00D10263
- 00D10264
- 00D10265
- 00D10266
- 00D10267
- 00D10268
- 00D10329
- 00D1032A
- 00D1032B
- 00D1032C
- 00E80084
この操作時に、Db2 は、最後に書き込まれるログ・レコードの RBA を BSDS に定期的に書き込みます。 この値は、ログ・マップ印刷レポートに次のように表示されます。
HIGHEST RBA WRITTEN: 00000742989E
このフィールドは BSDS で頻繁に更新されるため、「HIGHEST RBA WRITTEN
」というのが、おおよそログの終わりとして解釈できます。 このフィールドは各種の内部イベントが発生すると、BSDS で更新されます。 これらの内部イベントが発生しない場合は、
このフィールドはログ・バッファーの完全なサイクルが書き込まれるたびに更新されます。 書き込まれるログ・バッファー数が
インストール・パネル DSNTIPL の OUTPUT BUFFER フィールドの値に等しくなると、
ログ・バッファーの完全な 1 サイクルが完了します。 したがって、BSDS に含まれている値は、ログの終了にほぼ近い値です。
再始動時にログの実際の終わりを検出するために、Db2 はログを順方向に読み取ります。その読み取り操作は、大まかなログの終わりを示すログ RBA から始まり、ログの実際の終わりが突きとめられるまで継続されます。
この場合、ログの終わりはアクセスできないため、一部の情報は失われます。
- リカバリー単位により、追加のページ・セットがポイント X を過ぎて正常にコミットされたか、または修正された可能性があります。
- 追加データが、ログのアクセス可能部分に書き込みペンディングとして識別されるデータも含めて、書き込まれた場合もあります。
- 新しいリカバリー単位が作成され、 これによりデータが修正されている可能性もあります。
ログ・エラーが発生しているため、Db2 はこれらのイベントを検出できません。
この状態で Db2 を再始動するには、ログの切り捨てが必要です。