DB2 5 min read

Db2をdb2moveで移行したら表が空・SQL0668N ― 移行後に表が使えないときの逆引き

db2look と db2move で別のデータベースへ移したあと、一部の表が空だったり、表を読もうとすると次のエラーになったりすることがあります。

SQL0668N  Operation not allowed for reason code "1" on table "MV.EMP".  SQLSTATE=57007

db2move の画面には警告が1行出るだけで、どの行がなぜ落ちたかは出ません。

まず見る(結論)

db2move を実行したディレクトリにある表ごとの tabN.msg と、移行先のチェック・ペンディングの表を確認します。

# 行が落ちた理由(表と tabN の対応は db2move.lst)
grep -E 'SQL3550W|SQL3[0-9]{3}N' tab*.msg

# 使えなくなっている表
db2 "SELECT TABSCHEMA, TABNAME, STATUS FROM SYSCAT.TABLES WHERE STATUS = 'C'"

SQL3550W ... GENERATED ALWAYS が出ていれば、IDENTITY 列を GENERATED ALWAYS で定義した表の行が全部 Rejected になっています。

症状 → 原因 → 対処(逆引き)

症状 よくある原因 まず打つ手
表が0件。tabN.msg に SQL3550W IDENTITY 列が GENERATED ALWAYS で、ファイルの値を受け付けない LOAD FROM tabN.ixf OF IXF MODIFIED BY IDENTITYOVERRIDE REPLACE INTO 表名
移行後に読み書きで SQL0668N 理由コード1 LOAD 後のチェック・ペンディング SET INTEGRITY FOR 表名 IMMEDIATE CHECKED
SET INTEGRITY が SQL3603N 親表が空のまま、子表に行が入った 親表を入れ直してから SET INTEGRITY を流し直す
IMPORT で IDENTITYOVERRIDE が SQL3016N IMPORT にはこの修飾子が無い 列を SET GENERATED BY DEFAULT にして IMPORT し、ALWAYS に戻す
DDL を流すと SQL0204N "表スペース名" db2look -e だけでは表スペースが出ない db2look -e -l で取り直す。権限も要るなら -x
-l の DDL で SQL1582N 移行先の既定ページサイズが移行元と違う 移行先を CREATE DB ... PAGESIZE で移行元に合わせて作る
移行後最初の INSERT で SQL0803N IDENTITY 列の次の値が 1 に戻っている ALTER TABLE ... ALTER COLUMN ... RESTART WITH で最大値より大きくする

db2move import -io REPLACE_CREATE で表ごと作らせると、外部キー・CHECK 制約・ビュー・権限は作られません。DDL は db2look で先に流します。

それでも切り分けられないとき(実機ログつきの詳解)

db2move load の実際の出力、SQL3550W が出る .msg の中身、IDENTITYOVERRIDE で復旧するまでの手順と、db2look のオプションごとに移行先に何ができるかの比較は、Zennのフル記事にまとめています。

▶ Zennで続きを読む(無料)

Db2のdb2moveで移行した表が空になる ― GENERATED ALWAYSのSQL3550WとLOAD後のSQL0668N


実機ログつきの詳解を読む →

この記事のような現場のTIPSを、Db2運用の全体像として12章に体系化しました。公式マニュアルには載らない「あのとき知っていれば」を減らすための1冊です。

現場で引ける Db2 の教科書

現場で引ける!Db2実践エンジニア・バイブル

Db2はRDBMS市場でシェア数%。情報が少なく、頼れるのは膨大な公式マニュアルだけ―― そんな現状を変えたくて、「なぜこの値にするのか」「この障害のとき次に何を見るのか」という、マニュアルに載っていない現場の文脈を1冊にまとめました。書いてあることはすべて実際の現場で経験したことです。

アーキテクチャ/構成パラメーター選定/セキュリティ/バックアップ・リカバリ/HADR/pureScale/日常点検の自動化/メモリ・ロック競合/SQLチューニング/RUNSTATS・REORG/MON_GET監視/現場の難題集 ―― 全12章+運用シェルスクリプト集。

Zennで読む →