阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 透明网关访问 MySQL 表

177次阅读
没有评论

共计 2656 个字符,预计需要花费 7 分钟才能阅读完成。

环境 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<sid>.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]

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137169.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2656字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中