在DB2資料庫中,編目catalog)這個單詞很難理解,我自己當初在學習DB2的時候也常常被這個編目搞的很不明白,直到現在我個人也感覺到DB2中編目catalog)這個術語用的不是很好,具體來說編目有編目節點,編目資料庫等。
如果要理解編目,我先簡單講一下DB2資料庫的體繫結構,在DB2資料庫中最大的概念是系統節點)也就是主機,下面是執行個體,執行個體下面是資料庫,然後是資料表空間,然後是資料庫物件。現在假設你有一個資料庫伺服器在p570的機器上,你有一個用戶端在windows,linux或任何平台上,你現在想建立一個用戶端到伺服器端的串連,具體步驟是什麼呢?
第一步:
你必須要在用戶端的機器上能夠把遠端伺服器能夠識別出來,這個具體如何來做呢?在DB2使用的編目catalog)方式,具體來說就是通過編目把遠端伺服器寫在本地用戶端的一個檔案中:
db2 catalog tcpip node p570 remote 172.10.10.10 server 50000
在上面的這條命令中p570是一個節點名在一個機器上必須是唯一的),remote後面是伺服器的IP地址,server是遠程伺服器上執行個體對應的連接埠號碼。DB2通過這種方式在本地的SQLNODIR檔案中把遠程伺服器的資訊記錄下來,所以編目節點其實就是把遠程伺服器映射到本地,通過SQLNODIR中的記錄能夠找到遠程伺服器和執行個體,類似指向遠程伺服器和執行個體的地址指標。
第二步:
當把遠端伺服器IP地址,執行個體編目下來後,第二步應該把該執行個體下的資料庫編目到本地
db2 catalog db REMOTEDB at node p570
在這條命令中,REMOTEDB是遠程執行個體下的資料庫,p570是我們在第一步中編目的節點名
這條命令執行後會在本地SQLDBDIR檔案中記錄遠端資料庫的資訊,這這裡編目資料庫可以理解為把遠程伺服器執行個體下的資料庫映射到本地為一個別名。
上面是用戶端和伺服器不在同一台機器上,是通過編目節點,編目資料庫來實現用戶端串連到伺服器上資料庫的目的,如果是串連在同一台機器上,那麼這時候不要顯示的編目節點,但是在伺服器上當我們建立一個執行個體的時候,有一個隱含的把執行個體在本地編目的過程,假設在p570上建立一個執行個體名為db2inst1,其實有一個隱含的
db2 catalog local node db2inst1 instance db2inst1 system p570 ostype aix的步驟, 同樣當你在db2inst1下建立一個資料庫MYDB的時候,有一個隱含的編目catalog)資料庫的步驟:
db2 catalog db mydb at node db2inst1的步驟。
至此你可以這樣理解編目catalog),編目就是在本地或遠程建立用戶端到伺服器的資料庫連接的目的。
- 如何在DB2中提高Insert效能
- 淺談IBM DB2的Database Backup與恢複
- DB2下資料轉移任務操作執行個體