赞
踩
可以结合参考
Oracle 通过网关连接MySql的配置_oracle21c 网关 配置mysql-CSDN博客 来看本文档
服务器 A :win 64 ,IP : 192.X.X.X ,已经安装ORACLE 11g 和 client 11g。
实例orcl,用户test,密码123456
服务器B:win 32位 ,192.168.X,X,装有mysql。
数据库 test,用户 test1,密码123456
在 A上通过安装配置,实现 plsql 可以通过dblink 连接B的mysql,实现 在oracle中对mysql的数据 进行 增删改查等操作。
3、以下都是在A服务器上进行的操作。
4、网上资料说需要安装 oracle getaway 透明网关,但是现在一般在安装ORACLE 11g数据库都是带有的,不需要另外进行安装,这里只要安装dg4odbc驱动,进行配置即可实现。
5、原理简单说明:使用 oracle网关来通过ODBC连接MySQL。 ( MySQL是一个ODBC )
A是64位,下载64位的驱动,我使用的 是
(这个可以复制下来进行安装),可以自行下载其他版本 。
没有安装前如下图,没有对应mysql的驱动。
win8 64 (C:\Windows\System32\odbcad32.exe)
安装过程有报错的,可以从软件管家安装 微软常用运行库合集 64位_2018.7.30
win8 64 (C:\Windows\System32\odbcad32.exe)
在Oracle服务器上,cmd窗口中执行命令(dg4odbc),表示已经安装成功
选择,系统DSN--添加—mysql odbc 5.3 ANSI Driver。(参考上图)
进行对应配置 名称 mysqlodbc
点击 按钮 Test,测试 是否连接成功。
在" ..\product\11.2.0\dbhome_1\hs\admin"目录下,默认存在名为"initdg4odbc.ora"的文件,复制"initdg4odbc.ora"文件,新文件名称改为"initmysqlodbc.ora",
【每个使用DG4ODBC的实例,都必须单独一个"init*.ora"文件,文件命名规则:init+<网关sid>+.ora】
最终我配置是
HS_FDS_CONNECT_INFO = mysqlodbc
HS_FDS_TRACE_LEVEL = off
…\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
加上这段
- #以下是透明网关的设置
-
- (SID_DESC =
-
- (SID_NAME = mysqlodbc ) # 对应以上的配置名
-
- (ORACLE_HOME =D:\app\dell\product\11.2.0\dbhome_1)
-
- (PROGRAM = dg4odbc ) # 固定
-
- )
打开 " ….\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora"文件
这个服务名 ,是下面创建link使用的 服务
- mysqlodbc =
-
- (DESCRIPTION =
-
- (ADDRESS_LIST =
-
- (ADDRESS = (PROTOCOL = TCP)(HOST = 106-pc)(PORT = 1521))
-
- )
-
- (CONNECT_DATA =
-
- (SERVICE_NAME = mysqlodbc) # 这个是上面的SID_NAME = mysqlodbc
-
- )
-
- (HS = OK)
-
- )
命令重启监听
lsnrctl stop
lsnrctl start
或者手动去 停止\启动
以sqlplus、PLSQL Developer或TOAD连接到OracleDB,执行以下DDL语句创建DBLink
【在"create database link"语句中,用户名和密码,建议以双引号括起来,避免Oracle在大小写上做自动转换】
我这里使用plsql来执行
- create database link mysqlodbc connect to "test1"
-
- identified by "123456" using 'mysqlodbc';
具体意思如下:
- create public database link mysqlodbc connect to "test1" identified by "123456"
- using '(DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT =1521) )
- (CONNECT_DATA = (SID = mysqlodbc ))
- (HS=OK))';
测试查询mysql里的tbopcs表: select * from tbopcs@mysqlodbc ;
注意:最后测试时,将监听和oracle service 都重启下测试,看配置是否影响到plsql 对oracle 原来的连接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。