天天看点

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

  • 一、安装透明网关以及mysql odbc
    • 1.1、下载oracle 透明网关
    • 1.2、按照默认安装透明网关
    • 1.3 下载安装mysql odbc驱动
  • 二 配置mysql数据源
  • 三 配置透明网关
    • 3.1配置 initdg4odbc.ora
    • 3.2 配置 listener.ora
    • 3.3 配置tnsnames.ora
  • 四 重启监听以及测试监听配置
  • 五、创建dblink 访问数据库

一、安装透明网关以及mysql odbc

1.1、下载oracle 透明网关

oracle 11g windows 64 位下载地址

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.h

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

1.2、按照默认安装透明网关

按照路径最好与oracle_home路径保持一致

按照后测试

dos窗口输入

dg4odbc
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

看到以上信息表示安装成功。

1.3 下载安装mysql odbc驱动

下载地址;

https://dev.mysql.com/downloads/connector/odbc/

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

二 配置mysql数据源

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

记住配置的数据源名称为mysql。

测试连接

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

测试成功后保存即可。

三 配置透明网关

3.1配置 initdg4odbc.ora

进入oracle_home 目录下找到hs\admin目录中initdg4odbc.ora文件并复制一份。

然后修改复制文件。把文件名称改为init+刚刚配置数据源名称(本实例为mysql).ora

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

修改initmysql.ora内容

HS_FDS_CONNECT_INFO =mysql
HS_FDS_TRACE_LEVEL =on 
           

HS_FDS_TRACE_LEVEL =on 这里最好设置on 网上一般将都是设置为off,为了查看错误日志,最后改为on。

3.2 配置 listener.ora

进入oracle_home/NETWORK\ADMIN 目录下,先备份listener.ora

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

并在listener.ora加入下面内容

(SID_DESC =
      (SID_NAME =mysql)
      (ORACLE_HOME = D:\software\oracle11\product\11.2.0\dbhome_1)
      (PROGRAM =dg4odbc)
     )
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

这里 SID_NAME 就是实例名称,也就是我们配置的mysql数据源名称,需要注意的是 PROGRAM ,Oracle11g这里一定要配置为dg4odbc。 不能是hsodbc 我就是修改为后面两种结果找了一下午的错误。ORA-28545: 连接代理时 Net8 诊断到错误

3.3 配置tnsnames.ora

进入客户端tns_admin 路径下在tnsnames.ora中添加

mysql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME= mysql)
    )
    (HS = OK)
  )  
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

四 重启监听以及测试监听配置

lsnrctl stop
lsnrctl start
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

tnsping mysql

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

看到监听配置成功

五、创建dblink 访问数据库

用sys用户在sqlplus登录

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库
create database link mysql connect to "root" identified by "root" using 'mysql'; 
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

注意这里 用户名和密码 一定要加双引号,不然会被认为是大写。

测试连接

我们在mysql bi库中有一个表使sys_user. 数据如下

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

通过sqlplus 访问 sys_user 表

select  "login_name","nick_name" from [email protected];
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

注意,查询按字段获取时需要加上双引号,不然会提示字段不存在。

我们再插入一条数据进行测试

insert into  [email protected]("id","login_name","nick_name") VALUES(2,'from_oracle','数据来自oralce数据库');
           
oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

还需要注意的是由于mysql是会区分大小写,这里的id是小写。数据插入后

我们再回到mysql 数据中进行查询

oracle11g通过透明网关访问mysql一、安装透明网关以及mysql odbc二 配置mysql数据源三 配置透明网关四 重启监听以及测试监听配置五、创建dblink 访问数据库

能正常查询到刚刚从oracle数据库插入的数据。

继续阅读