透明网关mysql_Oracle 透明网关访问 MySQL 表

环境 LINUX 64 BIT Oracle 11.2.0.4

LINUX 64 BIT MYSQL 5.7.14

1、

MYSQL建立一个用户用于ORACLE DBLINK 建立这里忽略掉

2、

11gR2 默认安装了透明网关检查一下

[orared@roseha1 ~]$ dg4odbc

Oracle Corporation --- WEDNESDAY NOV 09 2016 15:51:46.233

Heterogeneous Agent Release 11.2.0.4.0 - 64bit Production  Built with

Oracle Database Gateway for ODBC

dg4odbc 是database gateway for odbc 的简称

3、安装 MYSQL-connector

yum install mysql-connector-odbc.x86_64

这样会安装一些依赖包主要是

mysql-connector*.x86_64.rpm

unixODBC*.x86_64.rpm

unixODBC*.i386.rpm

这里包含了一些需要的库文件

4、配置odbc配置信息

默认就在/etc/下建立odbc.ini

我这里配置如下:

# Setup from the unixODBC64-libs package

[rmt]                                      #连接名

Driver          = /usr/lib64/libmyodbc3.so #驱动

Server          = 192.168.0.150            #mysql服务器ip

Port            = 3306                     #MYSQL端口

User            = 156read                  #建立的MYSQL用户

Password        = test123                  #密码

Database        = test                     #访问的数据

5、测试一下

[root@roseha1 etc]# isql rmt

+---------------------------------------+

| Connected!                            |

|                                       |

| sql-statement                         |

| help [tablename]                      |

| quit                                  |

|                                       |

+---------------------------------------+

成功

接下来配置oracle的相关配置

6、进入如下目录:

[orared@roseha1 admin]$ pwd

/home/orared/product/11.2.4/hs/admin

建立配置文件格式为init.ora这个sid就是

listener中配置的sid,我这里打开了trace,正式使用需要关系

trace日志在/home/orared/product/11.2.4/hs/log用于排错

[orared@roseha1 admin]$ more initrmt.ora

HS_FDS_CONNECT_INFO=rmt

# Data source name in odbc.ini

HS_FDS_TRACE_LEVEL= debug

HS_FDS_SHAREABLE_NAME=libodbc.so

HS_FDS_SUPPORT_STATISTICS=FALSE

HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P15

#

# ODBC env variables

set ODBCINI=/etc/odbc.ini

HS_FDS_SHAREABLE_NAME=libodbc.so这里一定要注意不是

Driver          = /usr/lib64/libmyodbc3.so

中的库文件

7、配置监听

我这里为了不影响现有的监听新建了一个监听LISTENER2

配置如下:

LISTENER2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = roseha1)(PORT = 1523))

)

SID_LIST_LISTENER2 =

(SID_DESC =

(SID_NAME = rmt)

(ORACLE_HOME = /home/orared/product/11.2.4)

(PROGRAM = dg4odbc)

(ENVS=LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/home/orared/product/11.2.4/lib:/home/orared/product/11.2.4/odbc/lib)

)

8、配置TNSNEAMS.ORA

我这里配置如下注意HS=OK不能少

rmt_150_mysql =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = roseha1 )(PORT = 1523))

)

(CONNECT_DATA =

(SID = rmt)

)

(HS = OK)

)

9、建立DBlink

create  database link rmt_150_mysql

connect to "156read" identified by "test123" using 'rmt_150_mysql';

10、查询数据

select "status" from "test"@RMT_150_MYSQL;

默认情况下LINUX的MYSQL 表名和数据库名是区分大小写的,因为LINUX本身是一个

文件名区分大小的文件系统,但是ORCALE的表名是不区分大小的的。但是字段

MYSQL和ORACLE都不区分大小写。

如果不加上双引号会出现找到表和列。

配置过程遇到一些错误,但是打开

HS_FDS_TRACE_LEVEL = debug 能够很好的找到错误来源,然后解决。

oracle——dg4odbc——odbc——mysql

可以参考:

Detailed Overview of Connecting Oracle to MySQL Using DG4ODBC DatabaseLink [ID 1320645.1]

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值