【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