33.5.2 障害原因の特定と対処
KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されているかどうかによって,チャンクの状態および対処方法が異なります。
中断タイミングごとのチャンクの状態および対処方法を次の表に示します。
中断のタイミング※1 |
チャンクの状態 |
対処方法 |
---|---|---|
チャンクのマージ中 |
|
「(1) チャンクのマージ中に中断した場合」を参照してください。 |
マージ元チャンクの削除中※2 |
|
「(2) マージ元チャンクの削除中に中断した場合」を参照してください。 |
- 注※1
-
中断のタイミングは,次に示すように出力されたメッセージで確認できます。
- 注※2
-
リターンコードが0または4のKFAA80243-Iメッセージ(Purge-chunk processing ended.)が出力されている場合,マージチャンク処理はすべて完了しています。この場合,対処は不要です。
(1) チャンクのマージ中に中断した場合
KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されていない場合の対処手順を次に示します。
- 手順
-
-
出力されているメッセージを確認して,障害原因を特定してください。
-
障害原因の対処を行ってください。
-
adbmergechunkコマンドを再実行してください。
-
(2) マージ元チャンクの削除中に中断した場合
KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されている場合は,削除仕掛中のチャンクを削除する必要があります。対処手順を次に示します。
- 手順
-
-
出力されているメッセージを確認して,障害原因を特定してください。
-
障害原因の対処を行ってください。
-
必要に応じて,削除仕掛中のチャンクを確認してください。
この操作は必須ではありません。削除仕掛中のチャンクを確認したい場合に限り実行してください。確認方法については,下記のメモを参照してください。
-
「削除仕掛中」のチャンクをPURGE CHUNK文で一括して削除してください。
- PURGE CHUNK文の指定例
-
PURGE CHUNK "スキーマ名"."表識別子" WHERE CHUNKID=ANY( SELECT "CHUNK_ID" FROM "MASTER"."STATUS_CHUNKS" WHERE "TABLE_SCHEMA" = 'スキーマ名' AND "TABLE_NAME" = '表識別子' AND "CHUNK_STATUS" = 'Pending Delete')
スキーマ名には,adbmergechunkコマンドを実行した表の所有者のスキーマ名を指定します。表識別子には,表の表識別子を指定します。
-
- メモ
-
adbdbstatusコマンドのDBエリア,表とインデクスの使用量情報で,削除仕掛中のチャンクを確認できます。
adbdbstatusコマンドの実行例
adbdbstatus -d used -c table -n adbmergechunkコマンドが中断した表名
adbmergechunkコマンドが中断した表名は,「スキーマ名.表識別子」の形式で指定します。
コマンドを実行したあと,出力結果(DBエリア,表とインデクスの使用量情報)の2行目以降を確認してください(出力結果の1行目は列のタイトルです)。
-
Chunk_status列(18列目)の値がPending_deleteになっている行がある場合は,マージ元チャンクが削除されていません。削除仕掛中のチャンクがあります。
(例)
-
Chunk_status列(18列目)にPending_deleteが出力されていない場合は,マージチャンク処理が完了しています(マージ元チャンクの削除が完了しています)。
(例)
-