DB2 「編目」是將遠端資料庫映射到本地編目檔 (SQLNODIR、SQLDBDIR) 的過程。本文從架構原理出發,詳解跨機器連線的雙步驟編目流程與同機器隱含編目機制。
系統/節點 (主機)
└─ 實例
└─ 資料庫
└─ 表空間
└─ 資料庫物件
db2 catalog tcpip node p570 remote 172.10.10.10 server 50000
# p570 = 本地節點別名 (唯一)
# remote = 遠端 IP
# server = 遠端實例 SVCENAME 埠號/服務名
# 寫入本地 SQLNODIR (節點編目檔)
db2 catalog db REMOTEDB at node p570
# REMOTEDB = 遠端實例下的資料庫名
# p570 = 步驟1 節點別名
# 寫入本地 SQLDBDIR (資料庫編目檔)
# 本地現在有別名 REMOTEDB 指向遠端資料庫
建立實例時自動執行:
db2 catalog local node db2inst1 instance db2inst1 system p570 ostype aix
建立資料庫時自動執行:
db2 catalog db mydb at node db2inst1
故本機連線無需手動編目,db2 connect to mydb 直接生效。
| 檔案 | 內容 | 典型路徑 |
|---|---|---|
| SQLNODIR | 節點編目 (遠端主機/實例映射) | ~/sqllib/ 或 \SQLLIB\DB2目錄\ |
| SQLDBDIR | 資料庫編目 (資料庫別名映射) | 同上 |
db2 list node directory -- 顯示所有節點條目
db2 list db directory -- 顯示所有資料庫別名條目
db2 uncatalog node p570
db2 uncatalog db REMOTEDB
編目 = 在本地建立「指向遠端資料庫的地址指標」。
節點編目 = 指向遠端主機+實例。
資料庫編目 = 指向遠端實例下的具體資料庫。
連線時,DB2 依序查找 SQLDBDIR → SQLNODIR → 網路連線。
SQL1052Ndb2 terminate 刷新快取 → 編目不生效理解編目雙層映射機制,遠端連線配置不再是黑盒。