oracle 透明网关访问mysql数据库 linux系统


在之前的博客:https://blog.csdn.net/whandgdh/article/details/99354252中讲解了oracle透明网关访问mysql 在windows系统中的实现,本文讲解在linux系统中的实现。

一 透明网关下载安装

1.1 下载oracle 透明网关

进入oralcle官网下载页面:https://www.oracle.com/downloads/
在这里插入图片描述
本文选择19c ,需要通过从数据库下载文件中找到网关gateways文件。
进入19c下载文件后如下图选择查看全部
在这里插入图片描述
然后从页面中找到linux 版gateways文件进行下载。
在这里插入图片描述

1.2 透明网关安装

1.2.1 解压

将下载好的安装包通过ssh上传到系统中。
然后解压.

unzip LINUX.X64_193000_gateways.zip 

在这里插入图片描述

1.2.2 安装

进入gateways目录 在这里插入图片描述
然后运行 runInstaller文件

./ runInstaller

这里需要通过xshell 工具运行,不能再使用finashell,不然不能弹出图形化界面。xshell可以通过xManager 弹出图形化界面
在这里插入图片描述
同样安装路径选择和oracle_home路径一样
在这里插入图片描述
在这里插入图片描述
然后直到完成。

1.3 检查gatewas是否安装成功

进入$ORACLE_HOME/hs 执行 dg4odbc

 cd $ORACLE_HOME/hs
 dg4odbc 

在这里插入图片描述
注意 dg4odbc 意思是 database gateway for odbc

二、odbc安装

下载网址
同样进入oracle 官网下载页面
https://www.oracle.com/downloads/

在这里插入图片描述
然后进入mysql下载页面
在这里插入图片描述
mysql下载页面中xuanzconnector/ODBC
在这里插入图片描述
在odbc页面中选择 Linux - Generic 然后下载64位即可
在这里插入图片描述

然后通过ssh上传到系统,进行解压安装,
tar -xvf mysql-connector-odbc-8.0.18-linux-glibc2.12-x86-64bit.tar.gz
依赖包安装:

cd usr/local/mysql-connector-odbc-8.0.18-linux-glibc2.12-x86-64bit/
./configure 
--prefix=/usr/local/unixODBC-2.3.1 --includedir=/usr/include --libdir=/usr/lib bindir=/usr/binsysconfdir=/etc
make
make install

三、 odbc 配置

3.1 odbc.ini mysql 数据库连接串配置

vi  /etc/odbc.ini 
 /etc/odbc.ini 
[dev_uw]
Description=MySQL connection to 'underwriting' database
Driver=MySQL
Database=underwriting
Server=ip
UserName=username
Password=password
Port=3306
Socket=/var/lib/mysql/mysql.sock
 

dev_uw 表示配置mysql数据源名称这个名字gateways中多个配置中需要。

3.2 odbc odbcinst.ini 驱动配置

vi /etc/odbcinst.ini 
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib64/libmyodbc5.so
Setup=/usr/lib64/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc5.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1
UsageCount=2

3.3 odbc 测试

isql dev_uw
select 1 from dual;

在这里插入图片描述# 四 gateways 网关配置

4.1 配置 initdg4odbc.ora

进入oracle_home 目录下找到hs\admin目录中initdg4odbc.ora文件并复制一份。
然后修改复制文件。把文件名称改为init+刚刚配置数据源名称(本实例为dev_uw).ora

HS_FDS_CONNECT_INFO = dev_uw
HS_FDS_TRACE_LEVEL = on
HS_FDS_SHAREABLE_NAME=libodbc.so
HS_LANGUAGE = AMERICAN_AMERICA.UTF8
HS_NLS_NCHAR = UCS2

HS_FDS_TRACE_LEVEL =on 这里最好设置on 网上一般将都是设置为off,为了查看错误日志,最好改为on,日志存在 $ORACLE_HOME/hs/log 下面。
同样这行HS_FDS_SHAREABLE_NAME=libodbc.so 一定不能少,不然后面会报错
ORA-28500: connection from ORACLE to a non-Oracle system returned this message。

4.2 配置 listener.ora

在$ORACLE_HOME/network/admin目录中

 cd  $ORACLE_HOME/network/admin
  vi listener.ora 

在 listener.ora配置文件中加入

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
          (SID_NAME = dev_uw)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (PROGRAM = dg4odbc)
    )
  )

在这里插入图片描述

SID_NAME 就是odbc中配置的mysql数据源名称

4.3 配置tnsnames.ora

vi tnsnames.ora

同样是在$ORACLE_HOME/network/admin目录中 在tnsnames.ora中添加

dev_uw=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost或者服务器ip)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME= dev_uw)
    )
    (HS = OK)
  )  
 

在这里插入图片描述
注意这里 dev_uw 是监听的名字,也可以是其他名字, 后面创建dbllink使用的名字是这个,SERVICE_NAME= dev_uw 仍然是需要访问mysql数据库odbc中配置的名字。

4.4 重启监听

lsnrctl stop
lsnrctl start

在这里插入图片描述
在这里插入图片描述
测试 监听是否有问题

 tnsping  dev_uw

在这里插入图片描述
出现上面表示监听配置成功

五、创建dblink

create database link to_dev_uw  connect to "root" identified by "root" using 'tns_dev_uw'; 

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

select 1 from dual@to_dev_uw 

在这里插入图片描述

成功访问mysql数据库

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值