処理の 4 つのフェーズ

recover1 プログラムの処理は、最大 4 つのフェーズで構成され、次の順序で実行されます。

  1. 整合性スキャン。整合性スキャン フェーズは、I オプションまたは L オプションの指定によって強制的に実行される場合を除き、Q オプションまたは Y オプションが指定されている場合は無視されます。このフェーズでは、ファイル全体を順方向に読み取って単純なエラーがないかをチェックし、ファイルの状態と recover1 で回復可能な推定レコード数を示す概要レポートを生成します。このフェーズでは索引ファイルは変更されません。
  2. ブロックの修復。ブロックの修復フェーズは常に実行されます。ファイルを逆方向に読み書きして、破損したデータ ブロックを修復し、非データ ブロックを空のブロックに変換し、一部の内部ファイル構造をリビルドします。
  3. データ ブロックの移動。データ ブロックの移動フェーズは、ファイル切り捨て

    オプション (T) が指定されている場合にのみ実行されます。このフェーズでは、ファイルを部分的に読み書きして、番号の大きい (ファイルの終わり近くにある) データ ブロックを番号が小さい使用可能なブロックに移動します。これにより、ファイルの末尾のスペースを最大化し、その部分を recover1 が終了した時点で切り捨ててオペレーティング システムに返すことができます。

  4. ノード ブロックのビルド。ノード ブロックのビルド フェーズは常に実行されます。ファイルを順方向に処理してデータ ブロックの読み取りとノード ブロックの書き込みを行い、ファイルの各キーのノード構造全体をリビルドします。
注:
  • 整合性スキャン フェーズの後、回復可能な推定レコード数がゼロであるか非常に低く、破損したデータ ブロックの数がデータ ブロックの総検出数に非常に近い場合、重複を許可するキーの数が正しくない可能性があります。原因としては、KIB が破損しているか、ユーザーが recover1 に誤ったキー情報を提供したことが考えられます。
  • 整合性スキャン フェーズの後、ほとんどのブロックが無効である場合、ディスク ブロックのサイズまたはディスク ブロックの増分が正しく指定されていないか、KIB が破損している可能性があります。
  • ブロックの修復フェーズで、読み取ったが書き込めなかったブロックの数が表示される場合があります。これは、ディスクにハードウェアの問題があることを示している可能性があります。