DB2 5 min read

Db2のレジストリ変数が反映されない ― db2set の設定が効かないときの逆引き

db2set でレジストリ変数を設定して、db2set で読み返すと値も入っている。それなのに挙動が変わらない、という状態の話です。

先に切り分けの前提を書くと、変数名のタイポと値の誤りは、その場でエラーになりますDBI1302E(名前)と DBI1301E(値)です。何もエラーが出ていないのに効かないなら、疑うのは名前ではなくスコープ・反映タイミング・構成の3つです。

まず見る(結論)

確認は -all を付けてください。引数なしの db2set はインスタンスレベルの値しか返しません。環境変数で上書きされていても表示されないため、「値は正しい」と誤判定します。

db2set -all
db2set -info <変数名>

1つ目でどのスコープの値が効いているか、2つ目で再起動が要るかどうかが分かります。-info は Db2 が変数ごとの反映タイミングを答えるオプションです。

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

症状 原因 まず打つ手
db2set -all[e] の行がある 環境変数が設定値に勝っている シェル・db2profile・systemd のユニットファイルから該当の環境変数を外す
db2set -infoImmediate change supported : NO そもそも即時反映できない変数 インスタンスを再起動する
supported : YES だが Immediate by default : NO -im を付けずに設定した db2set -im <変数>=<値> で設定し直す
DBI1302E(終了コード 254) 変数名が存在しない(タイポ) db2set -lr で正しい名前を確認する
DBI1301E(終了コード 254) その変数に許されない値 値を修正する。設定は入っていない
DBI1303W(終了コード 252) 変数名は正しいが未設定 設定されていないだけ。名前の誤りと区別できる
エラーは出ない。db2set -all にも出る。それでも効かない その構成では意味を持たない変数 pureScale 専用変数などを設定していないか確認する

db2set -g(グローバルレベル)は、設定も読み取りも root 権限が必要です。インスタンス所有者で叩くと DBI1052E(終了コード 28)になります。値そのものは db2set -all[g] 行で読めます。

いちばん気づきにくい真因:Db2 は「その構成で有効か」を検証しない

名前と値は検証されるのに、その変数が今の構成で意味を持つかどうかは検証されません。実際、CF が存在しない非 pureScale のインスタンスでも、DB2_SD_ALLOW_SLOW_NETWORKDB2_DATABASE_CF_MEMORY といった pureScale 専用の変数が終了コード 0 で設定でき、db2set -all にも並びます。db2set -lr の一覧にも出るので、名前を調べた側からは有効な変数に見えます。

戻すときの注意も1つ。-null は削除ではありません。db2set -null <変数> は値を NULL にする操作で、db2set -all には残り続けます。消すのは db2set <変数>= の方です。

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

対応変数 256 個すべてに -info を当てて調べた結果(即時反映できるのは 111 個、うち -im を明示しないと効かない 16 個の一覧)、-im を非対応の変数に付けたときに終了コードが 0 にならない件、スコープ記号の並び順まで含めた解説は、Zennのフル記事にまとめています。

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

Db2でdb2setしたのに効かない ― 環境変数・反映タイミング・pureScale専用変数の3つを実測した


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

関連: Db2が起動しない・接続だけ落ちる ― メモリ設定を疑うときの逆引きDb2「SQL1032N」インスタンス未起動の原因を切り分ける

容量で止まらないための表スペース・ストレージグループの設計と、監視をどこに張るかを、本書 第2章「インスタンス・DB構成パラメーターの選定基準」で「なぜその値にするのか」から解説しています。

現場で引ける Db2 の教科書

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

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

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

Zennで読む(¥2,000)→