許多 DB2 開發者對「目錄(Catalog)」指令知其然不知其所以然。本文從 DB2 系統架構層級出發,層層剖析目錄的運作原理,助你徹底搞懂客戶端如何透過本地目錄檔案精準定位遠端資料庫。
自大到小依序為:系統(節點/主機) → 實例 → 資料庫 → 表空間 → 資料庫物件。理解此層級關係,是掌握目錄機制的前提。
假設:伺服器運行於 p570 (AIX),客戶端為 Windows/Linux 任意平台。
db2 catalog tcpip node p570 remote 172.10.10.10 server 50000
執行後,DB2 將遠端伺服器與實例資訊寫入本地 SQLNODIR 檔案。本質上,目錄節點就是建立「本地別名 → 遠端 IP+埠」的指標映射。
db2 catalog db REMOTEDB at node p570
執行後,資訊寫入本地 SQLDBDIR 檔案。此步驟將「遠端資料庫」映射為「本地可連線的資料庫別名」,後續應用程式僅需 `connect to REMOTEDB` 即可透過兩層映射抵達目標。
若客戶端與伺服器同機,無需顯式目錄節點。但 DB2 內部仍執行隱性目錄動作:
db2 catalog local node db2inst1 instance db2inst1 system p570 ostype aixdb2 catalog db mydb at node db2inst1這解釋為何本機連線無須手動目錄——引擎已在後台完成雙層映射登錄。
目錄(Catalog)的本質:在本地端(SQLNODIR、SQLDBDIR)建立映射記錄,使客戶端能透過邏輯別名,經由節點指標 → IP/埠 → 實例 → 資料庫,完成跨網路或本機的精準連線定位。
掌握這層「雙層映射」邏輯,連線失敗排查、環境遷移、多實例共存等場景將不再是盲盒操作。