標籤:
在db2資料庫中,需要理解catalog(編目)這個概念,理解前先說下db2資料庫的體繫結構:由系統(節點)也就是主機,下面是執行個體,執行個體下面是資料庫,然後是資料表空間,再是資料庫物件。現在假設你有一個資料庫伺服器建立在MDMNODE1 的機器上,你有一個用戶端在windows、linux或任何平台上,你現在想建立一個用戶端到伺服器端的串連,具體步驟如下:
<第一步>
要在用戶端的機器上能夠把遠端伺服器能夠識別出來,怎麼做?
在DB2使用編目(catalog)方式,具體來說就是通過編目把遠端伺服器寫在本地用戶端的一個檔案中:
例:(註:例為項目中真實情況改編)
(附:
[[email protected] ~]# cd /home
[[email protected] home]# ls
dasusr1 db2fenc1 db2inst1 GetSysInfo.jar helloword.war mdmappserver01
[[email protected] home]# su - db2inst1
[[email protected] ~]$ cd /home
)
[[email protected] home]$ db2 catalog tcpip node MDMNODE1 remote 192.168.124.163 server 60006
命令注釋:MDMNODE1 是一個節點名(在一個機器上必須是唯一的),remote後面是伺服器的IP地址,server是遠程伺服器上執行個體對應的連接埠號碼。DB2通過這種方式在本地的SQLNODIR檔案中把遠程伺服器的資訊記錄下來,所以編目節點其實就是把遠程伺服器映射到本地,通過SQLNODIR中的記錄能夠找到遠程伺服器和執行個體,類似指向遠程伺服器和執行個體的地址指標。
查看:
[[email protected] home]$ db2 list node directory Node Directory Number of entries in the directory = 1Node 1 entry: Node name = MDMNODE1 Comment = Directory entry type = LOCAL Protocol = TCPIP Hostname = 192.168.124.163 Service name = 60006
<第二步>
當把遠端伺服器IP地址,執行個體編目下來後,第二步應該把該執行個體下的資料庫編目到本地:
[[email protected] home]$ db2 catalog db mdmdb at node mdmnode1DB20000I The CATALOG DATABASE command completed successfully.DB21056W Directory changes may not be effective until the directory cache is refreshed.
命令注釋:mdmdb 是遠程執行個體下的資料庫,mdmnode1是我們在第一步中編目的節點名
然後查看:
[[email protected] home]$ db2 list db directory System Database Directory Number of entries in the directory = 1Database 1 entry: Database alias = MDMDB Database name = MDMDB Node name = MDMNODE1 Database release level = 10.00 Comment = Directory entry type = Remote Catalog database partition number = -1 Alternate server hostname = Alternate server port number =
接下來試著串連:
[[email protected] home]$ db2 list tables 就能看到當前資料庫下的所有表了
總結:
上面是用戶端和伺服器不在同一台機器上,是通過編目節點,編目資料庫來實現用戶端串連到伺服器上資料庫的目的!
如果是串連在同一台機器上,那麼此時不用顯示編目節點,但是在伺服器上當我們建立一個執行個體的時候,有一個隱含的把執行個體在本地編目的過程,假設在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資料庫
DB2使用命令列串連遠端資料庫(+使用CoolSQL串連DB2)
遠端連線db2資料庫