主機名變更涉及 DB2 註冊表(DB2SYSTEM)、節點配置文件(db2nodes.cfg)、DAS 實例、所有數據庫實例連接配置。本文覆蓋 Windows、Linux、AIX、Solaris、HP-UX 全平台,適用 DB2 V8/V9.1/V9.5。
# Windows(管理員 CMD)
db2admin stop
set DB2INSTANCE=INST1
db2stop force
# Linux/UNIX(root 切換至實例用戶)
su - dasusr1 -c "db2admin stop"
for inst in $(db2ilist); do su - $inst -c "db2stop force"; done
hostnamectl set-hostname newname + 修改 /etc/hosts + 重啟網絡/主機chdev -l inet0 -a hostname=newname + 修改 /etc/hosts + 重啟# Windows(實例用戶 CMD)
db2set -g DB2SYSTEM=newname
db2terminate
# Linux/UNIX(需 root 權限操作全局註冊表)
su root
db2set -g DB2SYSTEM=newname
db2terminate
# 返回實例用戶驗證
db2set -all | grep DB2SYSTEM
# 輸出應顯示 [g] DB2SYSTEM=newname
避坑指南:V8/V9.1 執行 db2set -g 可能報 rc=-2029059830;V9.5 報 DBI1309E。原因均為實例用戶無權寫入全局註冊表文件,**必須用 root/su root 不帶減號**(保留實例環境變量)執行。
# Linux/UNIX 路徑
$INSTHOME/sqllib/db2nodes.cfg
# 內容示例(單分區)
0 newname 0
# 多分區示例
0 newname 0
1 newname2 1
若有 DAS 實例(如 das91),同步修改其 db2nodes.cfg 並重啟 db2admin start。
# 依次啟動
db2start
db2admin start
# 驗證連接
db2 connect to sample
db2 "SELECT * FROM SYSIBM.SYSDUMMY1"
所有遠程客戶端需重新 CATALOG TCPIP NODE 指向新主機名/IP,並 CATALOG DATABASE 更新別名映射。