Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


33.5.2 障害原因の特定と対処

KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されているかどうかによって,チャンクの状態および対処方法が異なります。

中断タイミングごとのチャンクの状態および対処方法を次の表に示します。

表33‒5 adbmergechunkコマンドの中断タイミングによるチャンクの状態および対処方法

中断のタイミング※1

チャンクの状態

対処方法

チャンクのマージ中

マージ元チャンクの状態

adbmergechunkコマンド実行前の状態になります。

マージ先チャンクの状態

存在しません(adbmergechunkコマンド実行前の状態です)。

(1) チャンクのマージ中に中断した場合」を参照してください。

マージ元チャンクの削除中※2

マージ元チャンクの状態

削除仕掛中です。

  • adbexportコマンド,またはadbsqlサブコマンドの#GETDATAで,削除仕掛中のチャンクIDを指定した場合,出力結果は0件となります。また,adbsqlサブコマンドの#GETCOUNTで,削除仕掛中のチャンクIDを指定した場合,0件のデータが集計対象となるため,出力結果は0件となります。

  • 削除仕掛中のチャンクを含む表に対して,adbmergechunkコマンドは実行できません。

  • 削除仕掛中のチャンクを含む表に対して,バックグラウンドインポートは実行できます。ただし,チャンク数が上限に達しているときは,実行できません。

マージ先チャンクの状態

マージ処理が完了しています。

(2) マージ元チャンクの削除中に中断した場合」を参照してください。

注※1

中断のタイミングは,次に示すように出力されたメッセージで確認できます。

[図データ]

注※2

リターンコードが0または4KFAA80243-Iメッセージ(Purge-chunk processing ended.)が出力されている場合,マージチャンク処理はすべて完了しています。この場合,対処は不要です。

〈この項の構成〉

(1) チャンクのマージ中に中断した場合

KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されていない場合の対処手順を次に示します。

手順
  1. 出力されているメッセージを確認して,障害原因を特定してください。

  2. 障害原因の対処を行ってください。

  3. adbmergechunkコマンドを再実行してください。

(2) マージ元チャンクの削除中に中断した場合

KFAA80242-Iメッセージ(Purge-chunk processing start.)が出力されている場合は,削除仕掛中のチャンクを削除する必要があります。対処手順を次に示します。

手順
  1. 出力されているメッセージを確認して,障害原因を特定してください。

  2. 障害原因の対処を行ってください。

  3. 必要に応じて,削除仕掛中のチャンクを確認してください。

    この操作は必須ではありません。削除仕掛中のチャンクを確認したい場合に限り実行してください。確認方法については,下記のメモを参照してください。

  4. 「削除仕掛中」のチャンクを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が出力されていない場合は,マージチャンク処理が完了しています(マージ元チャンクの削除が完了しています)。

    (例)

    [図データ]