在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 = 1
Node 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 mdmnode1
DB20000I 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 = 1
Database 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)
轉載于:https://www.cnblogs.com/carsonzhu/p/5483826.html