在 DB2 資料庫中,「編目」對應的英文單字 Catalog 常讓初學者摸不著頭緒。所謂編目,包含「編目節點」與「編目資料庫」等動作。要徹底理解這套機制,必須先掌握 DB2 的體系架構:系統(節點/主機)→ 實例 → 資料庫 → 表空間 → 資料庫物件。本文將透過實際連線情境,層層剖析 Catalog 的運作邏輯。
假設資料庫伺服器運行於 P570 主機,客戶端位於 Windows 或 Linux 平台,建立連線需完成以下兩步:
客戶端必須能辨識遠端伺服器。DB2 透過 CATALOG TCPIP NODE 指令,將遠端伺服器資訊寫入本地的 SQLNODIR 檔案:
db2 catalog tcpip node p570 remote 172.10.10.10 server 50000
此指令本質上建立一個「地址指標」,讓客戶端透過 SQLNODIR 記錄找到遠端伺服器與實例。
節點就緒後,需將該實例下的資料庫映射到本地別名,資訊寫入 SQLDBDIR:
db2 catalog db REMOTEDB at node p570
執行後,客戶端即可使用別名 REMOTEDB 連線至遠端資料庫。
若客戶端與伺服器同機,無需顯式編目節點。但在伺服器端建立實例(如 db2inst1)時,DB2 會隱性執行:
db2 catalog local node db2inst1 instance db2inst1 system p570 ostype aix
同理,在該實例下建立資料庫 MYDB 時,也會自動執行:
db2 catalog db mydb at node db2inst1
簡單來說,Catalog 就是在本地或遠端建立客戶端連至伺服器資料庫的「路徑地圖」。無論是跨機器的顯式編目,還是同機的隱性編目,核心目的都是讓連線請求能精準找到目標資料庫。