IBM Support

[Db2] db2set コマンドが DBI1309E で失敗する

Question & Answer


Question

db2set コマンドでレジストリ変数を参照または更新すると DBI1309E が返されて失敗します。 これはなぜでしょう?どうすれば回復できますか?

Cause

db2set コマンドは以下のファイルに記録された変数を参照しています。
db2set コマンドを実行しているユーザーが、これらのファイルに対する適切なアクセス権を持たない場合、db2set は DBI1309E で失敗します。
  • <instance_home>/sqllib/profile.env (インスタンス・レベルの変数)
  • /var/db2/global.reg (グローバル・レベルの変数)
 

グローバル・レベルの変数を更新する場合、db2set の -g オプションが必要です。
グローバル・レベルの変数を root でないユーザーで更新すると DBI1309E で失敗するのは期待される結果です。

Answer

global.reg は root ユーザー、profile.env はインスタンス・オーナーに所有され、オーナーによる読み書きの許可が付与されています。
$ ls -al /var/db2/global.reg
-rw-r--r--   1 root     system  27753 Jan 28 21:30 /var/db2/global.reg
$ ls -al $HOME/sqllib/profile.env
-rw-rw-r--   1 db2inst1 db2grp1    69 Jan 19 13:35 /home/db2inst1/sqllib/profile.env

何らかの理由でオーナーが変更されたり、所有者の読み書き許可がなくなっている場合、chmod や chown コマンドで回復してください。

運用上の考慮点

以下の障害によって、profile.env の所有者が意図されず変更されることがあります。
IT03996 (v10.1fp6) IT04060 (v10.5fp5): PROFILE.ENV HAS WRONG OWNERSHIP AFTER DB2IUPGRADE, DB2ICRT, OR DB2IUPDT OF ANOTHER INSTANCE


関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問
[Db2] Db2 レジストリ変数の設定が予期せず削除されることがある (IM-11-00D)
[Db2] root ユーザーで db2set コマンドなどが期待通り動作しないことがある
db2set - Db2 プロファイル・レジストリ・コマンド

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PknAAE","label":"Install\/Migrate\/Upgrade"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
26 August 2023

UID

swg22013225