今天搞了一下午透明网关配置,流程比较复杂,并且有一些坑,这不立刻来给大家排排坑,说不定以后就用的着呢!
废话不多说,直接实战走起~
本次环境准备了3台主机,分别是Oracle数据库,MySQL数据库,透明网关。
环境信息:
用途
主机名
IP地址
主机版本
数据库版本
DB名称
端口号
Oracle数据库
orcl
10.211.55.100
RHEL7.6
11GR2
1521
MySQL数据库
mysql
10.211.55.101
8.0.26
lucifer
3306
透明网关主机
gateway
10.211.55.102
无
为什么透明网关需要单独配置一台主机?
注意:透明网关主机的配置不需要很高,无需安装Oracle数据库,仅安装透明网关即可!
首先,需要下载GateWay和MySQLODBC安装包:
方便大家学习,我直接上传到百度网盘供大家下载:
注意:安装透明网关之前需要配置环境和创建用户等等,可以参照Linux安装单机Oracle的环境配置步骤,这里就不再详述了!
使用Oracle一键安装脚本配置即可:
稍许等待几分钟之后,即可配置完成,由于没有上传DB安装包,这个报错是正常!
主机配置完成后,开始安装透明网关:
开始安装:
确认安装位置:
这里选择forODBC即可:
开始安装,静待结束:
root用户下执行root.sh脚本:
至此,透明网关安装结束!
首先需要安装unixODBC依赖,否则报错:
安装unixODBC依赖后安装mysql-connector:
透明网关安装好之后,自然是需要配置才能使用的。
注意:如果有多个MySQL数据库需要配置,则填写多个即可!
[lucifer]Description=ODBCforMySQLDriver=/usr/lib64/libmyodbc8w.soServer=10.211.55.101Port=3306User=luciferPassword=luciferDatabase=lucifer[lucifer1]Description=ODBCforMySQLDriver=/usr/lib64/libmyodbc8w.soServer=10.211.55.105Port=3306User=lucifer1Password=lucifer1Database=lucifer13.2、配置initSID.ora切换至oracle用户,进入$ORACLE_HOME/hs/admin目录下,新建一个initSID.ora文件:
注意:如果有多个MySQL数据库需要配置,则创建多个initSID.ora文件即可!
oracle用户下,进入$TNS_ADMIN配置listener.ora文件:
cat<
透明网关配置完成后,就只需要配置Oracle数据库来连接透明网关。
通过配置TNS来连接透明网关,进入TNS配置文件目录$TNS_ADMIN配置TNS:
接下来只需要创建你DBLink即可连接MySQL数据库:
如果按照我的步骤来操作,整个流程走下来应该会比较顺畅,下面罗列一下我操作过程中遇到的一些报错:
1、initsid.ora配置文件的HS_FDS_SHAREABLE_NAME=/usr/lib64/libodbc.so不正确,应该是ODBC的Lib包:
ERRORatline1:ORA-28500:connectionfromORACLEtoanon-Oraclesystemreturnedthismessage:ORA-02063:precedinglinefromDLK2、initsid.ora里配置的HS_LANGUAGE=AMERICAN_AMERICA.zhs16gbk字符集不正确或者没有配置,应该是Oracle数据库字符集:
ERRORatline1:ORA-28500:connectionfromORACLEtoanon-Oraclesystemreturnedthismessage:[3、执行查询操作时,表名需要带双引号,因为MySQL默认表名是区分大小写,而Oracle是不区分大小写的: