索引ファイルを検証します。
検証対象のファイルが破損している場合、REBUILD はゼロ以外の値を返します。
パラメーター
- c
- 実行する検証を指定します。デフォルトは 10 です。
値 |
説明 |
2 |
空き領域リスト (FSL) の構造をチェックします。 |
8 |
索引の構造をチェックします。 |
256 |
他のプロセスで共有できるように、ファイルを開いた状態でデータ ファイルの構造をチェックします。このチェックを他のチェックと組み合わせて指定することはできません。 |
0 |
なし |
1 |
エラー メッセージのみ |
2 |
指定したオプションを含むメッセージ |
3 |
ファイルに関する情報。この情報には、キー定義、レコード長、データ圧縮、およびファイルを作成/更新したファイル ハンドラーのバージョンが含まれます。 |
4 |
ファイル内の各種のレコードを表示します。
- IDXFORMAT"4" 情報レコード
- 削除済みレコード
- システム レコード
- 上書きでサイズが縮小されたデータ レコード
- 上書きでサイズが増加したため、元のレコード領域に格納できなくなったレコード。代わりにこのレコードは、元のレコードの移動先レコード領域を指し示します。
- タイプ 6 のレコードが指し示すレコード
- タイプ 6 のレコードが指し示すレコード
- タイプ 6 のレコードが指し示すレコード
|
5 |
各キー構造の統計情報。キー圧縮で節約されたディスク容量の情報が含まれます。 |
2 および 8 のチェックは、それぞれの値の和を指定することによって、任意に組み合わせて選択できます。実行するチェックが増えると、検証時間が長くなります。
- d
- メッセージ レベルを指定します。
低メッセージ レベルは、高メッセージ レベルに含まれます。たとえば、レベル 4 を指定すると、レベル 1、2、および 3 のメッセージも受信します。デフォルトは 5 です。
値 |
説明 |
0 |
なし |
1 |
エラー メッセージのみ |
2 |
指定したオプションを含むメッセージ |
3 |
ファイルに関する情報。この情報には、キー定義、レコード長、データ圧縮、およびファイルを作成/更新したファイル ハンドラーのバージョンが含まれます。 |
4 |
ファイル内の各種のレコードを表示します。
- IDXFORMAT"4" 情報レコード
- 削除済みレコード
- システム レコード
- 上書きでサイズが縮小されたデータ レコード
- 上書きでサイズが増加したため、元のレコード領域に格納できなくなったレコード。代わりにこのレコードは、元のレコードの移動先レコード領域を指し示します。
- タイプ 6 のレコードが指し示すレコード
- タイプ 6 のレコードが指し示すレコード
- タイプ 6 のレコードが指し示すレコード
|
5 |
各キー構造の統計情報。キー圧縮で節約されたディスク容量の情報が含まれます。 |
例
rebuild test.dat -f:c8
索引の構造をチェックします。
rebuild test.dat -f:d1
エラー メッセージのみを指定します。
rebuild test.dat -f:c2d1
FSL の構造をチェックし、エラー メッセージのみを指定します。
rebuild test.dat -f
ファイルに対して完全な整合性チェックを実行し、あらゆる情報を表示します。これは、-f:c10 を指定した場合と同じです。
注:次のメッセージのいずれかにより、表示が中断する場合があります。
File is corrupt
これは、ファイル内の制御情報がデータと一致していないことを表しています。たとえば、あるレコードが削除されているにもかかわらず、削除済みレコードのリストにそのレコードが含まれていない場合があります。そのようなファイルは、データそのものは破損していない場合でも破損しているものとして報告されます。
File contains transaction data
これは、COMMIT または ROLLBACK が成功しなかった Fileshare トランザクションの一部であったレコードがファイルに含まれているため、制御情報がデータと一致しない可能性があることを意味します。
たとえば、レコードがトランザクションの一部として書き込まれているが、システム障害により、トランザクションがコミットされる前に Fileshare が処理を停止した場合などです。Fileshare ロールフォワード リカバリを使用していない場合は、/d オプションを使用して新しいファイルにリビルドすることにより、リビルドでこのトランザクション データを削除できます。ファイルを使用可能な状態に素早くリカバリして、同じファイルにリビルドできるようにすると、索引が正しく再作成されます (トランザクション データを、削除されたレコードとして扱います)。ただし、トランザクション レコード データはファイル内に残り、スペースは再利用されず、/f を指定してリビルドすると、ファイルにトランザクション データが含まれていることが報告され続けます。