インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(db2) クライアントからDBに接続するもAlternate server hostnameに値が入らず困っていた

なぜ?

以下のようにサーバ側に代替サーバを定義しておくと

$ db2 "UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING
> HOSTNAME XXX
> PORT 51000
> "

クライアントから接続すると本来は以下のように値が格納されます

$ db2 LIST DB DIRECTORY
...
 Catalog database partition number    = -1
 Alternate server hostname            = XXX
 Alternate server port number         = 51000

しかし、何故かそこに値が入らない事象がありました。

どうやったら解消した?

DBサーバ側を再起動しました。ここまで必要だったのか不明ですがその状態で

$ db2start
...     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
$ db2 ACTIVATE DATABASE xx
DB20000I  The ACTIVATE DATABASE command completed successfully.

としてクライアントから接続すると値が入りました。一度値が入ると、サーバ側の代替サーバ名を変更&Db2の落とし上げで反映されるように。

何が功を奏したのか不明ですが、少なくともパラメータの設定変更などはせずに解消したことをメモとして残しておきます。