oracle创建与mysql的dblink

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文件

 

输入:

 

1

2

3

HS_FDS_CONNECT_INFO = mysql # mysql   是odbc的连接名

  

HS_FDS_TRACE_LEVEL = 0

  

 

 

5.在

 

%ORACLE_HOME%/network /ADMIN下修改

 

listener.ora

 

附加在:SID_LIST内容

 

1

2

3

4

5

6

7

8

(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错误会话被终止。

你可能感兴趣的:(Oracle存储,MySQL,运维,MySQL,架构,Oracle数据库)