業務上有這麼一個需求,需要把Oracle的一些資料同步到MySQL,如果每次都是手動同步的話,實在 太麻煩,因此花了點時間研究了下Oracle直連MySQL的方式。
參考文檔:Detailed Overview of Connecting Oracle to MySQL Using DG4ODBC Database Link (Doc ID 1320645.1)
版本資訊:
Oracle: 11.2.0.1.0 OS: CentOS 5.9
MySQL: 5.5.27 OS: CentOS 5.8
原理:
Oracle使用DG4ODBC資料閘道串連其它非Oracle資料庫,其原理圖如下:
從上圖可知,Oracle串連MySQL需要涉及到如下組件:DG4ODBC, ODBC Driver Manager, ODBC Driver,本文將一一講解它們的配置。
1)判斷32位還是64位
因為32位和64位的配置不一樣,64位更複雜一些,因此我們首先得確定Oracle和DG4ODBC是32位還是 64位:
[oracle@lx16 ~]$ file $ORACLE_HOME/bin/dg4odbc
/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dg4odbc: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped
從上面的輸出可知是64位。
2)下載並安裝ODBC Driver Manager
到這個頁面(http://www.unixodbc.org/download.html)根據你的OS下載unixodbc(注意:版本不 能低於2.2.14)
$ wget http://sourceforge.net/projects/unixodbc/files/unixODBC/2.2.14/unixODBC-2.2.14- linux-x86-64.tar.gz/download
解壓縮:
$ tar -zxvf unixODBC-2.2.14-linux-x86-64.tar.gz
解壓縮後會在目前的目錄下自動建立usr的目錄,我們建立一個目錄(~/app/unixodbc-2.2.14)用於 放置unixodbc,然後把usr 遷移到該目錄下:
$ mkdir ~/app/unixodbc-2.2.14
$ mv usr ~/app/unixodbc-2.2.14
3)下載並按照ODBC Driver for MySQL
到這個頁面(http://dev.mysql.com/downloads/connector/odbc/5.2.html#downloads)根據你的 OS下載ODBC-5.2.5,本例選擇64位tar版本:
$ wget http://dev.mysql.com/get/Downloads/Connector-ODBC/5.2/mysql-connector-odbc- 5.2.5-linux-glibc2.5-x86-64bit.tar.gz/from/http://cdn.mysql.com/
$ tar -zxvf mysql- connector-odbc-5.2.5-linux-glibc2.5-x86-64bit.tar.gz
解壓縮成功後是一個檔案夾,把該檔案夾遷移至~/app目錄下,並給它建立一個軟連結:
$ mv mysql-connector-odbc-5.2.5-linux-glibc2.5-x86-64bit ~/app
$ cd ~/app
$ ln -s mysql-connector-odbc-5.2.5-linux-glibc2.5-x86-64bit myodbc-5.2.5