在oracle中通過鏈接服務器(dblink)訪問sql server


oracle中通過鏈接服務器(dblink)訪問sql server

 

2013-10-16

 

一、   工作環境:

<1> Oracle數據庫版本:Oracle 11g  運行環境 :IBM小型機 AIX 6.1

<2> SQL數據庫版本:  SQL 2005 R2  運行環境: HP DL 580 G6

 

二、   操作方式:利用透明網關,建立dblink ,訪問SQL SERVER

  1. 1.     透明網關簡介

ORACLE實現異構服務的技術叫做透明網關(Transparent Gateway),利用透明網關可以實現和SQL SERVER、SYBASE、DB2等多種數據庫的互聯。因此透明網關也是Oracle數據倉庫和數據遷移中的一個重要組成部分。

透明網關的體系結構也很簡單,在ORACLE和SQL SERVER之間使用ORACLE透明網關服務器實現互連互通,其中透明網關服務器可以與ORACLE或SQL SERVER數據庫在同一台主機上,也可以是在獨立的一台主機上。

  1. 2.     透明網關安裝

首先在官網上先下載個透明網關。網址(11g):

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

據說10g和11g的要單獨下,9i的安裝光盤里面有。另外找不到10g的透明網關,不確定11g的透明網關能否用於10g的數據庫,本地環境無法測試。

  1. 3.     [安裝步驟]

步驟這里就不一個個截圖了,基本就是“下一步”,下面是選組件的,選SQL SERVER的就可以了。安裝結束后有監視器的設置,可以直接跳過。

三、                       

[透明網關目錄:D:\app\HIS_LK\product\11.2.0\tg_1\]

[Oracle目錄:D:\app\HIS_LK\product\11.2.0\dbhome_1]

  1. 4.       配置透明網關的監聽listener.ora

其中listener.ora便是監聽文件,配置他即可。

           

SID_LIST_LISTENER =

       (SID_LIST =   

(SID_DESC =

  #SID是監聽的標識,這個是默認名稱,用了配本地的SQL SERVER

          (SID_NAME = dg4msql)   

          (PROGRAM = dg4msql)#默認不變  

          (ORACLE_HOME = D:\app\HIS_LK\product\11.2.0\tg_1)#透明網關安裝目錄  

          #(GLOBAL_DBNAME = dg4msql)  

        )  

(SID_DESC = 

  #SID是監聽的標識,這個是新名稱,用了配遠程SQL SERVER 

          (SID_NAME = kftest)  

          (PROGRAM = dg4msql)

          (ORACLE_HOME = D:\app\HIS_LK\product\11.2.0\tg_1)

          #(GLOBAL_DBNAME = dg4msql)

        )  

      )

  

LISTENER =

       (DESCRIPTION_LIST =

         (DESCRIPTION =

         #host是透明網關服務器,可用ip。

         #port為端口,oracle本身使用了1521端口,這里用1522

           (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

         )

       )

   

 

  1. 5.    配置透明網關的數據庫文件

Admin文件夾下默認存在安裝透明網關時的數據庫文件initdg4msql.ora。

數據文件命名規則:init+ SID(SID就是第3步中配置的SID_NAME),需要多個連接就建多個文件即可。

initdg4msql.ora文件內容:

           

   

#注意,連接的開頭不需要server=,網上很多寫了這個,其實不用寫,寫了會報錯

HS_FDS_CONNECT_INFO="HIS_LK-PC\\MYMSSQL;DATABASE=THIS4_TEST"

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

   

 

initkftest.ora文件內容:         

   

HS_FDS_CONNECT_INFO="172.16.40.117\\MSSQLSERVER2008;DATABASE=THIS4_TEST"

HS_FDS_TRACE_LEVEL=OFF 

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

   

 

1.  6.    配置服務器的服務名配置文件tnsnames.ora

Oracle目錄文件夾

在tnsnames.ora文件中增加以下內容即可        

   

DG4MSQL =#名稱,可自擬,這里和SID取成一樣,

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

        )

        (CONNECT_DATA =  

          (SERVICE_NAME = dg4msql)

        ) 

        (HS = OK)

      )

kftest =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

        )

        (CONNECT_DATA =

          (SERVICE_NAME = kftest)

        )

        (HS = OK) 

      )

   

 

1.7.    創建服務器連接

語法     

   

CREATE DATABASE LINK 連接名 CONNECT TO     "user" IDENTIFIED BY "password" USING 'tg4msql'

   

 

舉例:

CREATE DATABASE LINK kftest CONNECT TO "sa" IDENTIFIED BY " " USING ' kftest'

[說明]

這邊很郁悶,oracle不讓輸入空密碼,這里輸了個空格,測試的時候改了下sa的登錄密碼。這個沒查處理方法。

刪除連接語法    

DROP PUBLIC DATABASE LINK 連接名

   

    

1.8.    查詢測試

select * from wz_kfmck@kftest

請參考:在SQL Server 2005中連接Oracle,完成查詢、插入操作(SQL中訪問Orcale) 

http://www.cnblogs.com/bribe/p/3351955.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM