DB2 採用 C/S 架構。用戶端欲連線遠端資料庫,必須在本地建立「地址簿」——將遠端伺服器 IP、埠號、實例名、資料庫名映射為本地別名。此過程稱為 編目,核心檔案為 SQLNODIR (節點目錄) 與 SQLDBDIR (資料庫目錄)。
db2 catalog tcpip node <node_name> remote <server_ip> server <port>
node_name:本地唯一節點別名 (如 p570)remote:遠端伺服器 IP 或主機名server:遠端實例監聽埠 (預設 50000,可查 /etc/services 或 db2 get dbm cfg | grep -i svcename)執行後寫入本地 SQLNODIR,相當於建立指向遠端實例的「網路指標」。
db2 catalog db <remote_db_name> at node <node_name>
remote_db_name:遠端實例下的真實資料庫名at node:引用步驟 1 定義的節點別名執行後寫入本地 SQLDBDIR,完成「本地別名 → 遠端資料庫」映射。應用程式即可用 CONNECT TO <local_alias> 連線。
同一台主機上建立實例與資料庫時,DB2 自動執行隱性編目:
-- 建立實例 db2inst1 時自動執行
db2 catalog local node db2inst1 instance db2inst1 system <hostname> ostype aix
-- 建立資料庫 MYDB 時自動執行
db2 catalog db MYDB at node db2inst1
故本機連線無需手動編目節點,直接 CONNECT TO MYDB 即可。
db2 list node directory:檢視 SQLNODIR 內容db2 list db directory:檢視 SQLDBDIR 內容db2 uncatalog node <name> / db2 uncatalog db <alias>:移除編目理解編目本質,即掌握 DB2 跨平台、多實例、叢集環境下的連線拓撲管理核心。