新聞中心
如果您需要使用所有不同的數(shù)據(jù)庫(kù),包括選擇、插入、更新和刪除,就象所有的表都位于單個(gè)數(shù)據(jù)庫(kù)中那樣,那么將獲得非常高的工作效率。數(shù)據(jù)庫(kù)聯(lián)邦就是要做到這一點(diǎn):使所有表看起來(lái)象是在同一個(gè)數(shù)據(jù)庫(kù)中
那么,數(shù)據(jù)庫(kù)聯(lián)邦是怎么工作的?
“聯(lián)邦者(federator)”系統(tǒng)對(duì)遠(yuǎn)程系統(tǒng)“被聯(lián)邦者(federatee)”中的表進(jìn)行操作。遠(yuǎn)程表在“Federator”數(shù)據(jù)庫(kù)中作為虛擬表出現(xiàn)。客戶機(jī)應(yīng)用程序可以對(duì)“Federator”數(shù)據(jù)庫(kù)中的虛擬表執(zhí)行操作,但是真正的持久性存儲(chǔ)位于遠(yuǎn)程數(shù)據(jù)庫(kù)中。
每個(gè)“被聯(lián)邦者”都將“聯(lián)邦者”看成是另一個(gè)數(shù)據(jù)庫(kù)客戶機(jī)連接?!癋ederatee”只是處理數(shù)據(jù)庫(kù)操作的客戶機(jī)請(qǐng)求?!奥?lián)邦者”需要用客戶機(jī)軟件來(lái)訪問(wèn)每個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)。要訪問(wèn)每種被聯(lián)邦者,則需要安裝 IBM Informix?、Sybase、Oracle 等等的客戶機(jī)軟件。
數(shù)據(jù)庫(kù)聯(lián)邦的應(yīng)用程序接口是 SQL。與必須學(xué)習(xí)新接口相比,這大大地提高了工作效率。使用與對(duì)本地表進(jìn)行選擇、插入、更新和刪除相同的語(yǔ)法來(lái)訪問(wèn)遠(yuǎn)程表。當(dāng)然也并不是可以進(jìn)行所有表操作。
下面我們通過(guò)實(shí)際操作來(lái)看看如何配置聯(lián)邦數(shù)據(jù)庫(kù):
我們先準(zhǔn)備好前期工作,創(chuàng)建一個(gè)本地?cái)?shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)來(lái)做實(shí)驗(yàn)——
本地?cái)?shù)據(jù)庫(kù) :
數(shù)據(jù)庫(kù):LOCALDB
IP地址:192.168.20.138
端口號(hào):60000
用戶名:db2inst1
密碼:db2inst1
遠(yuǎn)程數(shù)據(jù)庫(kù) :
數(shù)據(jù)庫(kù):REMOTEDB
IP地址:192.168.20.145
端口號(hào):70000
用戶名:db2inst2
密碼:db2inst2
另外確保遠(yuǎn)程數(shù)據(jù)庫(kù)的全局設(shè)置如下——
現(xiàn)在,我們首先是添加編目節(jié)點(diǎn)——
然后編目數(shù)據(jù)庫(kù)——
db2 catalog database REMOTEDB as REMOTEDB at node NODE1
查看編目節(jié)點(diǎn)及編目數(shù)據(jù)庫(kù)結(jié)果——
db2 list node directory
db2 list db directory
顯示編目已成功
接下來(lái)執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)聯(lián)邦的步驟,首先創(chuàng)建WRAPPER——
備注:如果自定義了wrapper的名字,那么 library 就要加上,不同的系統(tǒng)lib的后綴不同,
AIX 是 .a
Linux 是 .so
注意:db2 "create wrapper db2_wrapper library 'libdb2drda.a'" 雙引號(hào)!
可以通過(guò) uname -a 去查看當(dāng)前是什么操作系統(tǒng)
(注意創(chuàng)建wrapper之前必須先連接本地?cái)?shù)據(jù)庫(kù):
db2 connect to dbname)
從上面可以看到報(bào)錯(cuò)了,說(shuō)的是未對(duì)指定的操作啟用數(shù)據(jù)庫(kù)的實(shí)例
我們查看Federated(聯(lián)邦)的功能是否打開(kāi),只需要開(kāi)啟本地的聯(lián)邦功能即可,看到顯示是NO
我們將Federated打開(kāi),并重啟數(shù)據(jù)庫(kù)使其生效——
現(xiàn)在可以看到創(chuàng)建成功了——
現(xiàn)在開(kāi)始連接遠(yuǎn)程數(shù)據(jù)庫(kù),記得連接前確保遠(yuǎn)程的系統(tǒng)已關(guān)閉防火墻——
創(chuàng)建連接對(duì)方數(shù)據(jù)的SERVER——
$ db2 "create server remotedb1svr type DB2/UDB version 10.5 wrapper "DRDA" authorization \"db2inst2\" password \"db2inst2\" options( NODE 'NODE01', DBNAME 'REMOTEDB')"
如果報(bào)錯(cuò)SQL1101N Remote database "dbname" on node "
with the specified authorization id and password. SQLSTATE=08004
嘗試修改db2 get dbm cfg|grep AUTHENTICATION
Database manager authentication (AUTHENTICATION) = SERVER
重啟數(shù)據(jù)庫(kù)生效
創(chuàng)建MAPPING——
$ db2 "create user mapping for \"db2inst1\" server remotedb1svr options (remote_authid 'db2inst2',remote_password 'db2inst2')"
創(chuàng)建聯(lián)邦關(guān)系表(首先需要確認(rèn)遠(yuǎn)程的庫(kù)有對(duì)應(yīng)的表已存在于數(shù)據(jù)庫(kù)中)——
$ db2 "create nickname db2inst1.testtable for remotedb1svr.db2inst2.testtable"
通過(guò)在本地查看聯(lián)邦數(shù)據(jù)庫(kù)的表
可以看到可以正常顯示
我們?cè)贉y(cè)試一下插入操作是否可行——
執(zhí)行成功,并且成功插入數(shù)據(jù)。
數(shù)據(jù)庫(kù)聯(lián)邦可以使我們不再需要構(gòu)建數(shù)據(jù)集市了!還有個(gè)前提,就是如果要查詢的量不是很大,并且如果匯總表通常就可以滿足查詢的要求,那么就不需要數(shù)據(jù)集市、不需要相應(yīng)地創(chuàng)建新服務(wù)器和移動(dòng)大量的數(shù)據(jù)等,這樣可以大大地提高工作效率。當(dāng)然,對(duì)于需要訪問(wèn)最低級(jí)別的詳細(xì)信息的忙碌繁重的查詢而言,數(shù)據(jù)集市或數(shù)據(jù)倉(cāng)庫(kù)是選的解決方案。
注:如果數(shù)據(jù)庫(kù)實(shí)例用戶密碼(聯(lián)邦中定義的用戶及密碼,也可以不是實(shí)例用戶,只要是遠(yuǎn)端存在的用戶即可)需要進(jìn)行修改的話,需要對(duì)聯(lián)邦中的密碼一并修改,否則聯(lián)邦會(huì)失效。特別要注意的一點(diǎn),實(shí)例用戶密碼修改之后,最好執(zhí)行一次重啟,否則你會(huì)發(fā)現(xiàn)不修改聯(lián)邦中的用戶密碼也不影響,但是一旦數(shù)據(jù)庫(kù)重啟后密碼就會(huì)使用最新的用戶密碼。
修改聯(lián)邦中的用戶或密碼的方法如下:
(修改表聯(lián)邦用戶):
db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_authid 'db2inst2')"
(修改表聯(lián)邦密碼):
db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_password 'db2inst2')"
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱:DB2聯(lián)邦數(shù)據(jù)庫(kù)及配置方法(及聯(lián)邦密碼修改)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://www.dlmjj.cn/article/diedgj.html