1.先简单介绍下环境
操作系统:windows 2008 R2 (64bits)
oracle数据库:10gr2 10.2.0.3.0(32bits)
mysql数据库:5.1 (32bits)
2.下载mysql的odbc驱动,我用的是mysql-connector-odbc-5.3.4-win32并安装
注意:一定要32bits,oracle因为是32bits的所有该使用32bits,如实64bit请使用64bit
3.配置odbc数据源,在控制面板中配置就可以了,使用系统DSN(一定要使用),取名为mysql
注:因为我是在64bits系统,应该使用32bits的odbc文件,%windir%/SysWOW64/odbcad32.exe
4.在
%ORACLE_HOME%/hs/admin下建立initmysql.ora文件
输入:
HS_FDS_CONNECT_INFO = mysql # mysql 是odbc的连接名 HS_FDS_TRACE_LEVEL = 0
5.在
%ORACLE_HOME%/network /ADMIN下修改
listener.ora
附加在:SID_LIST内容
(SID_DESC = (SID_NAME = mysql) # mysql 是hs中跟initmysql.ora对应 (ORACLE_HOME = 对应oracle目录 ) (PROGRAM = hsodbc) #10g使用的是hsodbc驱动 )
6.修改tnsnames.ora
输入:
mysql= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库的机器 即 odbc的机器 )(PORT = 1521)) (CONNECT_DATA = (SID=mysql) ) (HS =ok) )
7.创建dblink
create public database link mysqllink connect to “scott” identified by"tiger" using 'mysql';
8.访问mysql库中的表user,注意大小写。
select"username"from "user"@mysqllink
经测试均成功执行。
因为使用dblink,每次操作时,都需要commit或者rollback,不然会话放久的话,就会出现ora错误会话被终止。