【DB2】SQL0668N 理由コード3エラー ロードペンディング状態の確認と対処

事象

SQL0668N 理由コード 3 エラーが発生し DB 操作ができない。

原因

ロード操作実行中にエラーや force application コマンド等で強制的に終了するなど、ロード操作が失敗または中断した場合、該当の表がロード・ペンディング状態になる。

ロードペンディング確認方法

SELECT VARCHAR(TABSCHEMA,30) TABSCHEMA,VARCHAR(TABNAME,30) TABNAME, LOAD_STATUS, NO_LOAD_RESTART FROM SYSIBMADM.ADMINTABINFO WHERE LOAD_STATUS <> 'NULL'

SELECT 結果

TABSCHEMA
——————————
スキーマ名

 

TABNAME
——————————
テーブル名

 

LOAD_STATUS
————
PENDING

 

NO_LOAD_RESTART
—————
N

 

ステータスが「PENDING」で検索結果に表示されたテーブルが ロードペンディングになったテーブル。

ロードペンディング解除方法

以下 1 ~ 4 のどれかで解除する。

  1. TERMINATE オプションを使用してロード操作を終了する。
  2. RESTART オプションを使用してロードを再始動する。
  3. ロード操作が失敗したその同じ表に対し、LOAD REPLACE 操作を実行する。
  4. ロードした表の表スペースを、最新の表スペースまたはデータベース・バックアップを RESTORE DATABASE コマンドを使ってリカバリーした後、それ以降のリカバリー処理を実行する。

私はロードペンディング状態を解除の上、別方法で再度ロードを実施したかったので、1.の方法でロードペンディングを解除した。
コマンドは以下。

※TERMINATE オプションの場合、オリジナルの LOAD コマンドと表名だけは一致している必要があります。

コマンド「1.TERMINATE オプションを使用してロード操作を終了する。」

db2 “LOAD FROM LOAD時取込ファイル名.ixf OF IXF LOBS FROM . TERMINATE INTO テーブル名”

 

comments powered by Disqus