Posted on 2008-09-11 19:05
Prayer 閱讀(399)
評論(0) 編輯 收藏 引用 所屬分類:
DB2
在DB2數(shù)據庫中,編目(catalog)這個單詞很難理解,我自己當初在學習DB2的時候也常常被這個編目搞的很不明白,直到現(xiàn)在我個人也感覺到DB2中編目(catalog)這個術語用的不是很好,具體來說編目有編目節(jié)點,編目數(shù)據庫等如果要理解編目我先簡單講一下DB2數(shù)據庫的體系結構,在DB2數(shù)據庫中最大的概念是系統(tǒng)(節(jié)點)也就是主機,下面是實例,實例下面是數(shù)據庫,然后是表空間,然后是數(shù)據庫對象。現(xiàn)在假設你有一個數(shù)據庫服務器在p570的機器上,你有一個客戶端在windows,linux或任何平臺上,你現(xiàn)在想建立一個客戶端到服務器端的連接,具體步驟是什么呢?
第一步:
你必須要在客戶端的機器上能夠把遠程的服務器能夠識別出來,這個具體如何來做呢?Oracle中可以用SQL*NET配置,SYBASE中用OPEN CLIENT;而在DB2使用的編目(catalog)方式,具體來說就是通過編目把遠程的服務器寫在本地客戶端的一個文件中:
db2 catalog tcpip node p570 remote 172.10.10.10 server 50000
在上面的這條命令中p570是一個節(jié)點名(在一個機器上必須是唯一的),remote后面是服務器的IP地址,server是遠程服務器上實例對應的端口號
DB2通過這種方式在本地的SQLNODIR文件中把遠程服務器的信息記錄下來
所以編目節(jié)點其實就是把遠程服務器映射到本地,通過SQLNODIR中的記錄能夠找到遠程服務器和實例,類似指向遠程服務器和實例的地址指針
第二步:
當把遠程的服務器IP地址,實例編目下來后,第二步應該把該實例下的數(shù)據庫編目到本地
db2 catalog db REMOTEDB at node p570
在這條命令中,REMOTEDB是遠程實例下的數(shù)據庫,p570是我們在第一步中編目的節(jié)點名
這條命令執(zhí)行后會在本地SQLDBDIR文件中記錄遠程數(shù)據庫的信息,這這里編目數(shù)據庫可以理解為把遠程服務器實例下的數(shù)據庫映射到本地為一個別名
=========================
上面是客戶端和服務器不在同一臺機器上,是通過編目節(jié)點,編目數(shù)據庫來實現(xiàn)客戶端連接到服務器上數(shù)據庫的目的,如果是連接在同一臺機器上,那么這時候不要顯示的編目節(jié)點,但是在服務器上當我們創(chuàng)建一個實例的時候,有一個隱含的把實例在本地編目的過程,假設在p570上創(chuàng)建一個實例名為db2inst1,其實有一個隱含的
db2 catalog local node db2inst1 instance db2inst1 system p570 ostype aix的步驟,
同樣當你在db2inst1下創(chuàng)建一個數(shù)據庫MYDB的時候,有一個隱含的編目(catalog)數(shù)據庫的步驟:
db2 catalog db mydb at node db2inst1的步驟
至此你可以這樣理解編目(catalog),編目就是在本地或遠程建立客戶端到服務器的數(shù)據庫連接的目的,他類似Oracle數(shù)據庫中的通過SQL*NET或netca配置客戶端到服務器的連接;類似SYBASE中的OPEN CLIENT;類似informix中Iconnect
http://blog.csdn.net/fxxxgxxx/archive/2007/08/27/1760999.aspx