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錯誤會話被終止。