DB2聯合數據庫和暱稱等概念

今天項目(無奈的是項目組在海南,只好要日誌,當然這已經逼的習慣了)上有出現一個異常如下:

本以爲是框架的問題,我把打出來的日誌文件大體瀏覽了一遍(法寶啊,必須的),當然上面的只是數兆日誌文件裏的一小段,框架的源碼不是我寫的,於是把源碼找來看了看,大體瞭解了一些,修改源碼,增加日誌,編譯發文件,進過一系列的操作還是無濟於事啊,鬱悶(加上應用重啓的時間又長,更是鬱悶)。有經過幾次重複動作後,突然聽項目上的人說好了,菜單出來了,但其他地方還是有同樣的問題。???這是什麼問題呢,我修改的文件起作用了?可又爲什麼有的好了有的沒好?他說還給數據庫表加了個暱稱。暱稱?暱稱是什麼玩意?沒搞過?到底是哪個起作用了呢?經過驗證發現還就是這個所謂的暱稱的問題。菜鳥我是聞所未聞啊,還等什麼,百度,GOOGLE了一把,看了個皮毛。偶然從列表中打開了一個鏈接,看到了如下文章,感謝哥們的這個文章讓我瞭解了一點,現分享出來,比較易懂,感興趣的看看。


使用DB2聯合數據庫,您可以使用一條SQL語句查詢多個數據源中的數據。奇妙的是,這些數據源可以多種多樣:即可以是多種關係數據庫系統,也可以是非關係數據庫系統,比如Microsoft Excel、xml等。

要進行下面的試驗,您必須先安裝DB2 ESE (Enterprise Server Edition) for Windows。

假如您的DB2已經安裝好了,那就開始吧。 

1) 使用windows管理員權限的用戶登陸windows,筆者用的是Administrator。
2) 爲了完成下面的演示,您還需要另外一個windows用戶,筆者使用安裝DB2的時候自動創建的db2admin用戶。您當然也可以使用其他windows用戶。

3) 確保您已經創建了至少一個可用的實例。筆者使用缺省創建的DB2實例。您可以通過在命令窗口運行DB2START命令來啓動這個實例
4) 在DB2命令窗口運行DB2 GET DBM CFG 來查看當前實例的配置參數,並確保FEDERATED參數設置爲YES,您可以通過運行DB2 UPDATE DBM CFG USING FEDERATED YES來設置這個參數。修改這個參數後,必須重新啓動實例纔會生效(DB2STOP/DB2START

5) 卻保您已經創建了DB2樣本數據庫SAMPLE,如果您還沒有創建,可以通過在DB2命令行窗口運行db2sampl命令來創建它。

6) 創建另外一個數據庫,筆者使用名字TESTDB:
   DB2 CREATE DB TESTDB

7) 運行DB2CE命令打開DB2命令編輯器,並在這兒完成下面的步驟。

8) 連接到sample數據庫,並創建DRDA包裝器(WRAPPER).
  
CONNECT TO SAMPLE;
   CREATE WRAPPER DRDA;

  
9) 創建服務器(SERVER)
CREATE SERVER TESTDB TYPE DB2/UDB VERSION '8.2' WRAPPER "DRDA" AUTHID "db2admin" PASSWORD "db2admin" OPTIONS( ADD DBNAME 'TESTDB', PASSWORD 'Y');

10) 創建用戶映射
CREATE USER MAPPING FOR "ADMINISTRATOR" SERVER "TESTDB" OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD  REMOTE_PASSWORD 'db2admin') ;

11) 使用db2admin用戶連接到TESTDB數據庫、創建表WORKITEM、並插入樣本數據。

CONNECT TO TESTDB USER db2admin USING db2admin;

CREATE TABLE WORKITEM (
ITEMNO CHAR(4) NOT NULL,
ITEMNAME VARCHAR(50) NOT NULL,
EMPNO CHAR(6),
PRIMARY KEY (ITEMNO)
);

INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0001','測試程序模塊1','000010');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0002','完成模塊2的開發','000020');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0003','聯繫客戶A','000030');

12) 連接到SAMPLE數據庫,併爲TESTDB數據庫中的WORKITEM表創建暱稱:
CONNECT TO SAMPLE;
CREATE NICKNAME ADMINISTRATOR.WORKITEM FOR TESTDB.DB2ADMIN.WORKITEM;

13) OK,現在我們就可以在SAMPLE數據庫中使用TESTDB數據庫中的WORKITEM表了,而且還可以和SAMPLE數據庫的EMPLOYEE表聯合查詢:
   
SELECT * FROM WORKITEM;
    我們來查詢由誰來負責哪個工作項目:
   
SELECT A.ITEMNO,A.ITEMNAME,A.EMPNO,B.FIRSTNME,B.LASTNAME FROM WORKITEM A LEFT OUTER JOIN EMPLOYEE B ON A.EMPNO=B.EMPNO;
   
到此爲止,SAMPLE數據庫就已經變成了聯合數據庫,您通過在SAMPLE數據庫中爲TESTDB數據庫中的表或視圖創建暱稱來訪問他們。

原文出自:http://jetway.iteye.com/blog/128760

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章