ORACLE通過透明閘道器連線DB2

wzq609發表於2015-04-08

【前言】前面有文件介紹過ORACLE通過透明閘道器連線MS SQL、MySQL、sybase資料庫的方法,最近又碰到了客戶需要把DB2的資料同步到ORACLE的需求,貌似照這樣下去有機會聚齊七顆龍珠,召喚神龍了;

 

【環境說明】

DB2資料庫版本:09.07.0004

ORACLE資料庫版本:11.2.0.3   作業系統資訊:Windows2008_64

 

【思路】ORACLE通過透明閘道器訪問DB2的資料庫的方法,跟MySQL的方法幾乎是一樣的,整體的思路如下:

  • 安裝DB2資料庫的驅動
  • 在作業系統配置資料來源
  • 配置透明閘道器的引數檔案
  • 配置監聽檔案
  • 配置TNS檔案
  • 建立DBLINK

 

【詳細步驟】

1、安裝DB2資料庫的驅動,安裝完資料庫的驅動後,便可以在此處看到驅動資訊

image

相關的下載地址如下:http://happyqing.iteye.com/blog/2082305

 

2、配置系統DSN

image

image

image

image

【資料庫名稱和埠號,可以諮詢資料庫管理人員】

 

image

 

 

3、配置透明閘道器初始化引數

3.1   在“ORACLE_HOME\hs\admin”目錄下,預設存在名為“initdg4odbc.ora”的檔案,複製“initdg4odbc.ora”檔案,新檔名稱改為“initSIDMASDB.ora”,

   【每個使用DG4ODBC的例項,都必須單獨一個“init*.ora”檔案,檔案命名規則:init++.ora】

 

3.2 initQAS.ora檔案引數的說明【本實驗為QAS】

HS_FDS_CONNECT_INFO = QAS   【資料來源管理中的DSN名稱】

    HS_FDS_TRACE_LEVEL = OFF  【追蹤級別引數,出於效能影響一般不配置或者配置為“OFF”,若遇到閘道器問題需要跟蹤日誌,則配置為“Debug”,跟蹤日誌檔案存放在“ORACLE_HOME\hs\trace”目錄下】

  

3.3 配置閘道器監聽

閘道器監聽可配置的引數如下:SID_NAME  閘道器的SID

                                                 ORACLE_HOME目錄

PROGRAM指定監聽服務響應ODBC連線請求的可執行程式

 

請參考如下或者透明閘道器的配置:【修改紅色字型部分】

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

      (PROGRAM = extproc)

      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

    )

(SID_DESC =

      (SID_NAME = QAS)

      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

      (PROGRAM = dg4odbc)

    )

  )

備註:10G的資料庫,PROGRAM需要配置成“hsodbc”

 

3.4  重啟監聽服務

在cmd下面執行

lsnrctl stop
lsnrctl start

 

3.5 配置TNS,  開啟 “ORACLE_HOME\network\admin\tnsnames.ora”檔案

需要配置的引數如下:

connect_descriptor:填寫自定義的TNS連線名稱

ADDRESS:填寫透明閘道器的IP地址和埠

SID:指定連線閘道器的SID

HS :指定連線的是非ORACLE資料庫

connect_descriptor=

   (DESCRIPTION=

      (ADDRESS=

         (PROTOCOL=TCP)

         (HOST=host_name)

         (PORT=port_number)

      )

      (CONNECT_DATA=

         (SID=gateway_sid))

      (HS=OK))

 

本例子配置如下:

QAS =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = QAS)

    )

    (HS = OK)

  )

 

3.6 配置DBLINK

以sqlplus、PLSQL Developer或TOAD連線到OracleDB,執行以下DDL語句建立DBLink

【在“create database link”語句中,使用者名稱和密碼,建議以雙引號括起來,避免Oracle在大小寫上做自動轉換】

create database link QAS

  connect to "2222"

    identified by "2222" using QAS;

 

3.7測試結果的配置

用sqlplus在伺服器上面執行語句,返回如下值表明配置成功

SQL> select * from dual@qas;

D
-
X

 

【總結】第一次配置透明閘道器是ORACLE連線MS SQL,花了半天的時間終於弄清楚了,當初的感覺很興奮。後來在進行ORALCE連線其他型別的資料庫,配置的速度越來越快了。這次整個過程下來差不多隻花了2個小時,用技術的思維去學習技術,也是一件很快樂的事情;

 

..........................................................................................................................................................……………………………………………………….

本文作者:JOHN,某上市公司DBA,業餘時間專注於資料庫的技術管理,從管理的角度去運用技術。

ORACLE技術部落格:ORACLE 獵人筆記               資料庫技術群:367875324 (請備註資料庫型別)

......................................................................................................................................................................……………………………………………….

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

相關文章