ORACLE 訪問MYSQL 配置筆記

guoge發表於2015-04-27

 ORACLE本身並沒有針對MYSQL的透明閘道器,因此ORACLE 訪問MYSQL需透過ODBC 的透明閘道器完成。出於簡單說明,ORACLE 安裝在Windows 系統下。

第一步: 安裝MYSQL ODBC 驅動

由於是ORACLE 訪問MYSQL, 因此MYSQL ODBC 驅動 必須安裝在ORACLE 所在的伺服器上。可下載安裝mysql-connector-odbc-*.msi 安裝,或者在安裝mysql 社群版時選擇安裝connector-odbc。 需要說明的是,並不是每次都能安裝成功connector-odbc

 

第二步: 建立MYSQL ODBC 資料來源

在管理工具-> 資料來源(ODBC->系統DSN 中新增MYSQLODBC 資料來源。假設取名“KEYMYSQLA。可以在配置過程中測試連線,確保能夠連通。

 

第三步: 建立init<閘道器>.ora

$ORACLE_HOME\HS\ADMIN\ 目錄下有一個initdg4odbc.ini 檔案。 在當前目錄下,複製一命名規則為 init<閘道器>.ora的檔案,例如initmysql.ora , 這裡“mysqlB就是閘道器的sid.。 該檔案中兩行可以如下配置:

HS_FDS_CONNECT_INFO = keymysql  

HS_FDS_TRACE_LEVEL = NO

其中HS_FDS_CONNECT_INFO 的值就是第二步配置的ODBC資料來源 “KEYMYSQLA 中的值。

 

第四步: 將閘道器新增監聽中

在資料庫伺服器上修改$ORACLE_HOME\network|admin\ 下的listener.ora 檔案,在SID_LIST_LISTENER 新增標紅這段:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = CLRExtProc)

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

      (PROGRAM = extproc)

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

    )

    (SID_DESC =

      (SID_NAME = mysql)

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

      (PROGRAM = dg4odbc)

    )

  )

 

 

這裡 需要說明的是,一是,SID_NAME 的值就是第三步閘道器“mysqlB的值,和第二步ODBC 資料來源的值無關, 二是ORACLE_HOME 是你資料庫中實際的$ORACLE_HOME值不要直接複製忘了改。

 

第五步:配置別名

在資料庫伺服器上修改$ORACLE_HOME\network|admin\ 下的tnsname.ora 檔案,新增資料庫別名:

MYSQLSERVER =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = mysql)

    )

    (HS = OK)

  )

其中“MYSQLSERVERC 是別名, SERVICE_NAME 的“mysql”對應的是第三和第四步中的SID

 

第六步: 建立資料庫連線

執行以下SQL:

create database link mysqllk

  connect to "root"

identified by "root" using ‘MYSQLSERVER’;

其中“mysqllk”是database link ,

 

第七步: 測試

假設MYSQL中有個表t, ORACLE 中執行:

Select  * from t@ mysqllk

 

如果返回值正確,則表示配置過程。

 

 

PS:  由於MYSQL UTF8 字符集,ORACLE 資料庫是US7ASCII 字符集,讀取MYSQL中的中文會返回亂碼,網上一些,例如在 init<閘道器>.ora 中配置HS_LANGUAGEHS_NLS_NCHAR的方法還不奏效,還需下一步排除。

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

相關文章