Oracle10g通过DBLink访问MySQL示例
    1, 首先在Oracle所在计算机安装MySQL的Client端软件,并且x86_64和i386版本的都需要安装,以便可以连接MySQL数据库。查看Client安装情况:
复制代码 代码如下:
rpm -qa |grep mysql 
mysql-5.0.45-7.el5 
mysql-5.0.45-7.el5 
得到两条记录,一条是x86_64的,一条是i386的。
如果看到还没有安装mysql客户端软件,则需要安装:
复制代码 代码如下:
yum install mysql 
yum install mysql.i386 
验证在此Oracle所在计算机是可以连接目标主机MySQL数据库:
复制代码 代码如下:
mysql -h 192.168.1.1 -u root -p mysql
2, 检查Oracle所在计算机是否已安装MySQL ODBC客户端,并且x86_64和i386版本的都需要安装。 
复制代码 代码如下:
rpm -qa |grep mysql-connect 
如果没有安装mysql-connector-odbc,则用下面命令下载和安装:
下载 mysql-connector-odbc:
复制代码 代码如下:
wget ftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentO S/mysql-connector-odbc-3.51.12-2.2.i386.rpm 
安装mysql-connector-odbc: 
复制代码 代码如下:
rpm -ivh mysql-connector-odbc-3.51.12-2.2.i386.rpm 
得到提示
复制代码 代码如下:
libltdl.so.3 is needed by mysql-connector-odbc-3.51.12-2.2.i386 ,发现需要安装libtool的i386版本,因此通过如下命令安装libtool-ltdl.i386: 
yum list *.i386|grep libtool 
yum install libtool-ltdl.i386
3, 在Oracle所在计算机编辑/etc/odbc.ini文件,测试ODBC工作 
复制代码 代码如下:
vi /etc/odbc.ini 
#odbc.ini内容如下 
复制代码 代码如下:
[test] 
Driver=/usr/lib64/libmyodbc3.so 
Description=MySQL 
Server=192.168.1.1(MySQL Server IP) 
Port=3306 
User= (MySQL Username)
UID= (MySQL Username)
Password= (MySQL PWD)
Database= (MySQL Database Name)
Option=3 
Socket= 
在命令行中执行下列命令,应能够顺利登入MySQL Client窗口,即证明ODBC功能正常: 
复制代码 代码如下:
isql -v test
quit
4, 编辑hs配置文件 vi /ora10g/hs/admin/inittest.ora(注意文件名中蓝色部分为odbc.ini中蓝色名称) 
复制代码 代码如下:
HS_FDS_CONNECT_INFO = test
HS_FDS_TRACE_LEVEL = on(正式使用后,不需要排错的时候应设为off) 
HS_FDS_TRACE_FILE_NAME = test.trc 
HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so 
set ODBCINI=/etc/odbc.ini
5, 编辑Oracle所在计算机的Oracle listener的配置文件,建立一个模拟Oracle Listener的监听方式,为将来建立dblink做准备: 
vi /ora10g/network/admin/listener.ora 加入如下语句: 
复制代码 代码如下:
(SID_DESC =
   (SID_NAME = test) 
   (ORACLE_HOME = /ora10g) 
   (PROGRAM = hsodbc) 
   (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib) 
) 
listener.ora文件现在的内容变成: 
复制代码 代码如下:
SID_LIST_LISTENER = (
     SID_LIST = 
        (SID_DESC = 
           (ORACLE_HOME = /ora10g) 
           (PROGRAM = extproc) 
           (GLOBAL_DBNAME=prod) 
           (SID_NAME=prod) 
         ) 
        (SID_DESC = 
                  (SID_NAME = test) 
                  (ORACLE_HOME = /ora10g) 
                  (PROGRAM = hsodbc) 
                  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib) 
             )
) 
LISTENER = (
     DESCRIPTION_LIST = 
        (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
        &n