ロード・ユーティリティーは、表の状態を使用して、
ロード操作時のデータベースの整合性を保持します。 これらの状態は、データへのアクセスを制御するかユーザー処置を引き出すことによって機能します。
表の状態を判別するには、LOAD QUERY コマンドを発行します。
このコマンドはロード操作の状態も検査します。 表は同時に複数の状態になる場合もあります。 LOAD
QUERY によって戻される状態は、以下のとおりです。
- 正常状態
- 「正常」という状態は、表が作成された後の最初の状態であり、現在、表に表れるような (異常な) 状態がないことを示しています。
- 読み取りアクセスのみ
- ALLOW READ ACCESSオプションを指定すると、表は読み取りアクセス専用状態になります。 ロード・コマンドを呼び出す前に存在した表のデータが、ロード操作時に読み取り専用モードで使用可能になります。 ALLOW
READ ACCESSオプションを指定してロード操作が失敗した場合、ロード操作の前に表に存在していたデータは、失敗後も読み取り専用モードで引き続き使用できます。
- ロード中
- 「ロード進行中」という表の状態は、表に進行中のロードがあることを示しています。 ロード・ユーティリティーは、ロードが正常に完了すると、この過渡状態を解除します。 しかし、ロード操作が失敗または中断されると、表の状態は「ロード・ペンディング」に変わります。
- 再配分進行中
- 「再配分進行中」という表の状態は、表に進行中の再配分があることを示しています。 再配分ユーティリティーは、表の処理が正常に完了すると、この過渡状態を解除します。 しかし、再配分操作が失敗または中断されると、表の状態は「再配分ペンディング」に変わります。
- ロード・ペンディング
- 「ロード・ペンディング」という表の状態は、ロード操作が失敗または中断されたことを示しています。 以下のいずれかのステップを行うことにより、「ロード・ペンディング」状態を解除することができます。
- 失敗の原因に対処します。 例えば、ロード・ユーティリティーがディスク・スペースを使い果たした場合、
表スペースにコンテナーを追加します。 その後、ロード操作を再開します。
- ロード操作を終了します。
- ロード操作が失敗した表と同じ表に対してロードREPLACE操作を実行します。
- 最新の表スペースまたはデータベース・バックアップを指定した RESTORE
DATABASE コマンドを使用して、ロード中の表の表スペースをリカバリーしてから、さらにリカバリー・アクションを実行します。
- 再配分ペンディング
- 「再配分ペンディング」という表の状態は、再配分操作が失敗または中断されたことを示します。 REDISTRIBUTE
CONTINUE または REDISTRIBUTE ABORT 操作を実行して、「再配分保留中」状態を除去することができます。
- ロード再始動不可
- 「ロード再始動不可」の状態の表は部分的にロードされ、ロード再開操作を行うことができません。 表は次の 2 つの状況で「ロード再始動不可」の状態になります。
- 正常に再開または終了できなかった失敗ロード操作の後ロールフォワード操作を実行した場合
- 表の状態が「ロード進行中」または「ロード・ペンディング」になっている間に行われたオンライン・バックアップからリストア操作を実行した場合
表は「ロード・ペンディング」状態にもなります。 表の「ロード再始動不可」の状態を解除するには、LOAD TERMINATE または LOAD REPLACE コマンドを発行します。
- SET INTEGRITY ペンディング
- 「SET INTEGRITY ペンディング」という状態は、ロードされた表に未確認の制約があることを示しています。 ロード・ユーティリティーは、制約のある表でロード操作を開始する際に、表をこの状態にします。 表の SET INTEGRITY ペンディング状態を解除するには、SET INTEGRITY ステートメントを使用してください。
- タイプ 1 索引
- 「タイプ 1 索引」という状態は、表が現在タイプ 1 索引を使用していることを示します。 タイプ 1 索引は、バージョン 9.7 以降ではサポートされなくなりました。 タイプ 2 索引への変換は、バージョン 10 へアップグレードする前に行う必要があります。 それ以外の場合、表が最初にアクセスされるときに、タイプ 1 索引が自動的にタイプ 2 索引として再作成されます。
データベースをアップグレードする前に type-1 索引を変換する方法については、type-1 索引から type-2 索引への変換
トピックを参照してください。
- 使用不可
- リカバリー不能のロード操作からロールフォワードを実行すると、
表は「使用不可」状態になります。 この状態の表は使用することができません。ドロップするか、バックアップからリストアする必要があります。
複数の状態にある表の例
以下のように、大量のデータを含む入力ファイル(
staffdata.del)を表 NEWSTAFF にロードするとします。
connect to sample;
create table newstaff like staff;
load from staffdata.del of del insert into newstaff allow read access;
connect reset;
さらに、別のセッションを開き、次のコマンドを発行します。
connect to sample;
load query table newstaff;
connect reset;
LOAD QUERY コマンドを実行すると、NEWSTAFF 表の状態が「読み取りアクセスのみ」と「ロード進行中」であることが分かります。
Tablestate:
Load in Progress
Read Access Only