DB2 採用 **「節點編目 → 資料庫編目 → 連接」** 三步走模式,而非直接 IP 連接。本文詳細演示命令列操作流程、參數含義、常見誤區與核心輔助命令,為後續自動化部署打基礎。
# 1. 編目通訊節點 (邏輯名稱 NODE_ABC)
db2 catalog tcpip node NODE_ABC remote db_server_host server 50000
# 2. 編目資料庫別名 (映射到節點)
db2 catalog db MYDB at node NODE_ABC
# 3. 連接驗證
db2 connect to MYDB user db_user using db_pass
| 參數 | 說明 | 注意事項 |
|---|---|---|
| NODE_ABC | 本地節點邏輯名 | 全局唯一,建議 NODE_<環境>_ |
| remote | 伺服器主機名或 IP | 需客戶端可解析/直連 |
| server | 服務名或端口號 | 對應伺服端 SVCENAME,預設 50000,**非固定值** |
| MYDB | 遠端資料庫真實名 | 區分大小寫 (Linux/UNIX) |
| at node | 關聯步驟 1 的節點名 | 必須一致 | 大小寫敏感 | :Linux/UNIX 環境資料庫名、Schema、表名**嚴格區分大小寫**,編目時務必與伺服端一致。
| 任務 | 命令 | 輸出關鍵欄位 |
|---|---|---|
| 查看本地節點目錄 | db2 list node directory | Node name, Protocol, Hostname, Service name, OS type |
| 編目 TCP/IP 節點 (完整參數) | db2 catalog tcpip node <名> remote <IP> server <端口> ostype LINUX | ostype 供優化器參考,非必填 |
| 取消節點編目 | db2 uncatalog node <名> | 僅移除本地條目 |
| 列出可訪問資料庫 | db2 list db directory | Database alias, Database name, Node, Authentication, Directory type |
#!/bin/bash
# deploy_db2_catalog.sh <節點名> <端口> <資料庫名> <別名>
NODE=$1; IP=$2; PORT=$3; DB=$4; ALIAS=${5:-$DB}
db2 catalog tcpip node "$NODE" remote "$IP" server "$PORT"
db2 catalog db "$DB" as "$ALIAS" at node "$NODE"
db2 terminate
# 驗證
db2 list node directory | grep "$NODE"
db2 list db directory | grep "$ALIAS"
echo "編目完成,請手動執行:db2 connect to $ALIAS user using 進行連接測試"
掌握 catalog/uncatalog node/database、list node/db directory、terminate 五大核心命令,並理解「節點解耦網路、別名解耦實例」的設計哲學,即可輕鬆應對 DB2 客戶端連接的部署、遷移、擴容與故障排查。