DB2SYSTEMdb2nodes.cfg 檔案Windows:
db2admin stop
set DB2INSTANCE=INST1
db2stop
Linux/UNIX:
# 取得 DAS 實例名稱
db2set -all | grep DB2ADMINSERVER
# 輸出範例:[g] DB2ADMINSERVER=das91
# 停止 DAS
su - das91
db2admin stop
# 停止所有實例
db2ilist # 列出所有實例
# 依序登入各實例用戶執行 db2stop
請參閱各作業系統官方文件修改主機名稱(如 /etc/hosts、/etc/hostname、hostname 指令等)。
以 DB2 實例用戶登入執行:
db2set -g DB2SYSTEM=<新主機名>
db2terminate
權限陷阱與解決方案:
Linux/UNIX 上實例用戶無權修改全域登錄檔案(需 root 權限),直接執行會報錯:
DB2SET processing complete, rc=-2029059830, SQLCODE=0DBI1309E System error... registry Access...正確做法(使用 su root 而非 su - root 以保留實例用戶環境變數):
su root
# 輸入 root 密碼
db2set -g db2system=<新主機名>
db2terminate
exit
# 回實例用戶驗證
db2set -all | grep DB2SYSTEM
# 應顯示 [g] DB2SYSTEM=<新主機名>
多實例環境僅需執行一次全域設定。
檔案位置:
$HOME/sqllib/db2nodes.cfg%DB2PATH%\DB2\db2nodes.cfg將舊主機名稱替換為新名稱。例如原內容 0 red01 0 改為 0 newhostname 0。多實例需逐一修改。
db2 list admin node directory show detail
db2 uncatalog node <舊節點名>
db2 catalog admin tcpip node <新節點名> remote <新主機名>
db2 update admin cfg using DB2SYSTEM <新主機名>
db2 update admin cfg using SMTP_SERVER
Windows:
db2admin start
set DB2INSTANCE=INST1
db2start
Linux/UNIX:
# 啟動 DAS
db2set -all | grep DB2ADMINSERVER
su - das91
db2admin start
# 啟動所有實例
db2ilist
# 依序登入各實例用戶執行 db2start
若使用 Control Center 等 GUI 工具,需刪除舊主機名稱條目,點擊「添加系統」以新主機名稱重新發現。注意:DB2 V9.1 起 UNIX 平台不再提供 Control Center 等 GUI 工具。
su root 而非 su - root)db2nodes.cfg 僅修改主機名稱欄位,勿動其他欄位DB2SYSTEM 全域設定一次即可,但 db2nodes.cfg 需逐實例修改