oracle透明閘道器之異構資料庫的訪問

oracle_zsx發表於2013-09-18
oracle透明閘道器之異構資料庫之間的訪問:

 
環境配置說明:
    由於是模擬oracle訪問sql server資料庫,所以對環境的配置沒有那麼嚴格,
    將所有的配置(oracle、sql server、gateways)都放在了一臺虛擬的windows server 2003上面。
    其實,這三者可以獨立裝在不同的伺服器上,這裡由於條件限制,暫時全放在一臺伺服器上,就是我的server 2003。

具體配置如下:
       oracle所在伺服器:
             作業系統:windows server 2003
             IP地址:192.168.1.253
             資料庫:oracle_10.2.0.3_win_32
       sql server所在伺服器:
             作業系統:windows server 2003
             IP地址:192.168.1.253
             資料庫:sql server 2000_win_32
     
        透明閘道器(gateways)所在伺服器:
              作業系統:windows server 2003
              IP地址:192.168.1.253
              軟體:gateways_11.2.0.1_win_32

注意:
    可以看出我將這三者全部安裝在windows server 2003上了,其實,只要有環境,將這三者全部放在單獨的伺服器
    也行,將透明閘道器可以安裝在oracle所在伺服器上或者sql server所在伺服器上,不過需要做一些其他配置,
     我試過失敗率還是比較大的。

配置步驟如下:
1、
   安裝oracle,這一步不需要我過多的說明,在windows基本上是next-next-finish的。需要注意的是:在生產資料庫中,
   一定要注意做好備份和開啟歸檔。我安裝的oracle的主目錄如下:C:\oracle\product\10.2.0\db_1
  (這裡在c盤,因為我的windows server 2003是虛擬的, 並沒有分盤)。歸檔路徑:C:\oracle\arch
2、
  安裝sql server 2000,這一步我也不過多的說明,也是 next-next-finish 類似的。但是,裡面有些具體的配置,
  需要自己瞭解。
3、
  安裝透明閘道器,這一步比較重要,雖然透明閘道器是一個單獨的軟體,但是在oracle的過程中要非常注意,
  一定要安裝在oracle的home目錄下,也就是在安裝的過程中讓你選擇安裝的路徑,這時候一定要選擇
  C:\oracle\product\10.2.0\db_1 ,具體原因我也有些不太明瞭,當我做測試安裝在其他路徑的時候,
  發現是用oracle訪問不到sql server的,會有以下報錯:
  SQL> select * from ;
  select * from
                         *
  第 1 行出現錯誤:
  ORA-28545: 連線代理時 Net8 診斷到錯誤
  Unable to retrieve text of NETWORK/NCR message 65535
  ORA-02063: 緊接著 2 lines (起自 MSTEST)
  所以,這一步千萬要注意,當然如果你想試試的話可以自己另外測試。
4、
 配置透明閘道器引數檔案:
 找到這個路徑C:\oracle\product\10.2.0\db_1\dg4msql\admin,用記事本開啟initdg4msql.ora檔案,修改如下:
 HS_FDS_CONNECT_INFO=[192.168.1.253]//Northwind
 HS_FDS_TRACE_LEVEL=OFF
 HS_FDS_RECOVERY_ACCOUNT=RECOVER
 HS_FDS_RECOVERY_PWD=RECOVER
注意:我這裡是dg4msql,在10g的透明閘道器中可能是tg4msql,具體問題具體分析。
 
5、
配置監聽:
找到這個路徑:C:\oracle\product\10.2.0\db_1\network\ADMIN ,用記事本開啟listener.ora檔案,修改如下:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = dg4msql)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = dg4msql)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.253)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )
 
6、
重啟監聽:
開啟cmd,輸入以下命令:
停止:
lsnrctl stop
開啟:
lsnrctl start
注意:啟動監聽之後是可以看到你的監聽狀態的,確保在你的listener.ora檔案中有。
 
7、
配置tnsnames.ora檔案:
在檔案中新增下面語句:
DG4MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.253)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dg4msql)
    )
    (HS = OK)
  )
 
8、
測試dg4msql:
在cmd中輸入:
tnsping dg4msql
注意:
如果你測試不通,那麼趕快檢查配置。
 

9、
進oracle資料庫,建立DBLINK:
開啟cmd:
sqlplus / as sysdba
sql> create database link dbtest connect to sa identified by oracle using 'dg4msql';
 
10、
 透過dblink,用oracle訪問sql server資料庫,實際上是透過oracle能查詢sql server資料庫中資料就行
  sql> select * from ;
 
注意:
    當最後一步沒有報錯,並能成功查詢出sql server資料庫中的資料時,你的透明閘道器就算配置完成。
    如果有問題,歡迎與我交流。謝謝!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29107230/viewspace-772906/,如需轉載,請註明出處,否則將追究法律責任。

相關文章