Oracle Gateways透明閘道器訪問SQL Server

pwz1688發表於2014-09-19
     自己的本機安裝了Oracle 12c,公司的平臺需要同時支援Oracle與SQL Server,很多時候都有將資料從Oracle同步到SQL Server的需求。通過SQL Server的link Server可以達到目的,但是因為SQL Server都是64位版本,試過很多次都失敗了。再安裝32位SQL Server也懶得折騰。
    因Oracle是12c, 安裝的Gateways也是12c。嘗試過在Oracle資料庫伺服器(本機)安裝11g的gateways, 但是配置都失敗了。 
    Oracle Gateways 12c的下載地址也在Oracle Database 12c的下載頁。找到與自己資料庫版本的對應的Gateways。
    安裝前,設定了一下環境變數ORACLE_HOME,我的是:C:\oracle\product\12.1.0\dbhome_1
    安裝時,選擇自己需要訪問的資料庫,這裡是SQL Server.這裡將Gateways安裝到了與Oracle資料庫軟體相同的目錄。\
   安裝過程:
   Oracle Gateways透明閘道器訪問SQL ServerOracle Gateways透明閘道器訪問SQL ServerOracle Gateways透明閘道器訪問SQL Server
    配置是重點。網上找到的都是10g的配置。12c的目錄名稱與10g的稍有區別:
    listener.ora

    SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracle\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )

(SID_DESC =
      (SID_NAME = dg4msql)
      (ORACLE_HOME = C:\oracle\product\12.1.0\dbhome_1)
      (PROGRAM = dg4msql)
    )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )


在tnsnames.ora新增以下內容:

dg4msql =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = dg4msql)
    )
     (HS = OK)
  )

在ORACLE_HOME/dg4msql/admin/initdg4msql.ora
確認檔案initdg4msql.ora中有以下內容():

HS_FDS_CONNECT_INFO=server name,port number//database name
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

或者: [192.168.1.242]:1433//middle_db 

建立一個DB Link:
create public database link MS_LINK
  connect to sa identified by password
  using 'dg4msql';


重啟監聽。


使用select * from table@ms_link的形式訪問SQL Server表。不可以直接使用insert into table@ms_link select * from table向SQL Server表插入資料。錯誤提示是源表與目標表都應在同一個資料庫。
我的解決方法是使用一段匿名指令碼一次一條資料。不知道有沒有更好的辦法。


至此,已經可以成功在Oracle資料庫中訪問SQL Server的資料了。



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

相關文章