Uncategorized 3 min read

Db2「SQL1032N」インスタンス未起動の原因を切り分ける

データベースに接続しようとしたとき、あるいはコマンドを実行した際に、次のエラーが返ってくることがあります。

SQL1032N  No start database manager command was issued.  SQLSTATE=57019

SQL1032N「Db2のインスタンスが起動していない」というエラーです。この記事ではまず確認すべき点と、考えられる原因の逆引きを最短でまとめます。OOM Killerの確認など、OSのログを含めた切り分け(実機ログ・深掘り)は末尾のZenn記事にあります。

まず見る(結論)

「インスタンスが落ちている」ことは確定なので、本当にプロセスがいないかを確認します。

# Db2のメインプロセス(db2sysc)が存在するか確認
ps -ef | grep db2sysc

プロセスがいなければダウンしています。すぐに db2start で起動して復旧できますが、「なぜ落ちていたのか」を先に確認しないと、再発時に原因が追えなくなるため注意が必要です。

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

背景・状況 よくある原因 まず打つ手
OSを再起動した直後 Db2の自動起動がオフになっている db2start を手動実行し、必要なら db2iauto で自動起動を設定
誰も操作していないのに突然ダウン OOM Killer等によるプロセス強制終了 /var/log/messagesdmesgoom-killer の痕跡を探す
パッチ適用後・メンテナンス後 正常な db2stop 後に起動し忘れ db2diag.log に正常停止のログがあるか確認し、db2start

すぐに復旧させたい場合はインスタンスオーナーで db2start を実行し、SQL1063N(成功)が返るか確認してください。

いちばん多い真因:メモリ枯渇(OOM Killer)による強制終了

Linux環境で突然 SQL1032N になる場合、OSのメモリ不足により db2sysc がOS側から強制終了されたケースが非常に多いです。この場合、Db2自身のログにはダウンの理由が綺麗に残らないため、OSログの確認が必須になります。

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

OSログの具体的な見方、db2diag.log を使った正常停止と異常終了の見極めなど、本番環境を想定した詳しい調査手順は、Zennのフル記事にまとめています。

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

Db2「SQL1032N」データベース・マネージャー未起動の切り分けと復旧


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