オフライン表再編成のリカバリー

オフライン表再編成は、置換フェーズが始まるまでは、「全か無か」の処理です。 ソートまたはビルド・フェーズでシステムが破損した場合、REORG 操作はロールバックされ、クラッシュ・リカバリーの際に再実行されません。

置換フェーズの開始後にシステムが破損する場合、REORG 操作を完了する必要があります。これは、すべての再編成作業がすでに行われ、元の表が使用できない状態になっている可能性があるためです。 クラッシュ・リカバリー中に再編成された表オブジェクトの一時ファイルが必要になりますが、ソートに使用した TEMPORARY 表スペースは必要ありません。 リカバリーでは置換フェーズが初めから再開され、リカバリーにはコピー・オブジェクト内のすべてのデータが必要となります。 この場合、システム管理スペース (SMS) 表スペースとデータベース管理スペース (DMS) 表スペースの間で相違点があります。再編成が同じ表スペース内で行われた場合、SMS では再編成された表オブジェクトを 1 つのオブジェクトから他のオブジェクトにコピーする必要がありますが、DMS では再編成された表オブジェクトをポイントするだけで、元の表がドロップされます。 索引は再作成されませんが、クラッシュ・リカバリー中に無効とマークされ、データベースは標準の規則に従って、索引をいつ再作成するか (データベースを再開するときか、最初の索引アクセスのときか) を決定します。

索引の再作成フェーズで破損する場合、新しい表オブジェクトが既に存在するので再実行は行われません。 索引は、前述のように処理されます。

ロールフォワード・リカバリー時には、古いバージョンの表がディスク上にある場合、REORG 操作が再実行されます。 ロールフォワード・ユーティリティーでは、作成フェーズ中にログに記録されたレコード ID (RID) を使用して作成フェーズと置換フェーズが繰り返され、再編成された表を作成した操作が再適用されます。 索引は、前述のように処理されます。 もともと TEMPORARY 表スペースが使用されていた場合に限り、再編成されたオブジェクトのコピー用の TEMPORARY 表スペースが必要となります。 ロールフォワード・リカバリー中に、複数の REORG 操作が同時に再実行されることがあります (並列リカバリー)。