CentOS 5 x64、Oracle 10g x64、MySQL 5。核心思路:Oracle Heterogeneous Services (HS) + MySQL ODBC 驅動 + DBLink。
yum install mysql mysql.i386
mysql -h 192.168.1.1 -u root -p mysql # 驗證連通性wget ftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentOS/mysql-connector-odbc-3.51.12-2.2.i386.rpm
rpm -ivh mysql-connector-odbc-3.51.12-2.2.i386.rpm
# 缺 libltdl.so.3 → yum install libtool-ltdl.i386[test]
Driver=/usr/lib64/libmyodbc3.so
Description=MySQL
Server=192.168.1.1
Port=3306
User=mysql_user
Password=mysql_pwd
Database=mysql_db
Option=3
Socket=
驗證:isql -v test 成功進入 MySQL 客戶端。$ORACLE_HOME/hs/admin/inittest.ora(文件名與 odbc.ini 中 DSN 一致):
HS_FDS_CONNECT_INFO = test
HS_FDS_TRACE_LEVEL = off
HS_FDS_TRACE_FILE_NAME = test.trc
HS_FDS_SHAREABLE_NAME = /usr/lib/libmyodbc3.so
SET ODBCINI=/etc/odbc.ini(SID_DESC =
(SID_NAME = test)
(ORACLE_HOME = /ora10g)
(PROGRAM = hsodbc)
(ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib)
)
lsnrctl reload # 重載生效test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
(CONNECT_DATA = (SID=test))
(HS=OK)
)CREATE PUBLIC DATABASE LINK mysql_link
CONNECT TO "mysql_user" IDENTIFIED BY "mysql_pwd"
USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
(CONNECT_DATA=(SID=test))(HS=OK))';SELECT * FROM "table_name"@mysql_link;