以前有同事咨询过gateway相关的内容, 当时未深入研究,近期就19c gateway
安装前准备:
1.获取版本
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
搜索 Oracle gateway
这里用的V982066-01.zip (Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO)
2. ORACLE数据库具备
安装好数据库(略)
Gateway安装: ( gw for informix )
1.新建gateway目录
mkdir -p /data/gateway_soft
mkdir -p /data/gateway
chown -R oracle.dba /data/gateway_soft/
chown -R oracle.dba /data/gateway/
2.配置ORACLE环境变量
2.1 添加OGG环境变量 涉及OGG_HOME、PATH、LD_LIBARARY_PATH
####GATEWAY begin
export GATEWAY_HOME=/data/gateway
export PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$GATEWAY_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$GATEWAY_HOME:$LD_LIBRARY_PATH
####GATEWAY END
unzip V982066-01.zip -d /data/gateway_soft
2.2 安装
图形化
cd /data/gateway_soft/gateways
export DISPLAY=192.168.11.1:0.0
./runInstaller
3、进入gateways主目录查验initdg4ifmx.ora文件:
本次试验目录:/u01/app/oracle/product/19.3.0/db/dg4ifmx/admin
initdg4ifmx.ora
4、复制gateways主目录listener.ora.sample文件内容到oracle的listener.ora文件中:
##最终listener.ora文件如下
cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.188)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl19c)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(SID_NAME = orcl19c)
)
(SID_DESC =
(SID_NAME = dg4ifmx)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(PROGRAM = dg4ifmx)
)
)
5、重启监听,使监听生效:
--重启LISTENER
lsnrctl status
lsnrctl stop
lsnrctl start
lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 22-JAN-2026 10:55:19
................
Listener Parameter File /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/edc-pdf-dmdb01/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.188)(PORT=1521)))
Services Summary...
Service "dg4ifmx" has 1 instance(s).
Instance "dg4ifmx", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl19c" has 1 instance(s).
Instance "orcl19c", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
6、配置oracle的tnsname.ora文件
##增加informix 的 tns
dg4ifmx =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.188)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg4ifmx)
)
(HS=OK)
)
7、Oracle创建dblink:
SQL> create public database link gw_informix connect to "informix" identified by "informix" using 'dg4ifmx';
Database link created.
--删除连接使用下述drop
--drop public database link gw_informix;
8、查询测试:
select * from "aa"@gw_informix;
select * from "informix"."aa"@gw_informix; --注意DB间差异 名称大小写差异问题
tips:
informix间的跨库跨实例有点麻烦 : @符号 暂无法处理 后续研究 ;
可能需要改变思路,原先Informix之间跨库跨实例连接,转变成通过oracle中转
Gateway安装: ( gw for msql )
1. 略
2.配置ORACLE环境变量
2.1 添加OGG环境变量 涉及OGG_HOME、PATH、LD_LIBARARY_PATH (略)
2.2 安装 for sqlserver
图形化
cd /data/gateway_soft/gateways
export DISPLAY=192.168.11.1:0.0
./runInstaller
3、进入gateways主目录查验initdg4msql.ora文件:
本次试验目录:/u01/app/oracle/product/19.3.0/db/dg4msql/admin
initdg4msql.ora
多个实例,就直接拷贝:initdg4msql.ora 为 initdg4msql1.ora, initdg4msql2.ora,…, initdg4msqln.ora
里面主要是[IP]:1433//数据库名 有差异
4、复制gateways主目录listener.ora.sample文件内容到oracle的listener.ora文件中:
##最终listener.ora文件如下
cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.188)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl19c)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(SID_NAME = orcl19c)
)
(SID_DESC =
(SID_NAME = dg4ifmx)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(PROGRAM = dg4ifmx)
)
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
(PROGRAM = dg4msql)
)
)
5、重启监听,使监听生效:
--重启LISTENER
lsnrctl status
lsnrctl stop
lsnrctl start
lsnrctl status
6、配置oracle的tnsname.ora文件
##增加informix 的 tns
dg4msql =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.188)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg4msql)
)
(HS=OK)
)
7、Oracle创建dblink:
SQL> create public database link gw_msql connect to "sa" identified by "xxxxxx" using 'dg4msql';
Database link created.
drop public database link gw_msql;
8、查询测试:
select * from "dbo"."cdsgus1"@gw_msql; --注意DB间的差异 名称大小写的问题 跨库跨实例有点麻烦 两个点号不认,目前是配多个监听 tns,dblink来做
select * from "dbo"."cdsgus"@gw_msql where "id" between 1000 and 1100 ;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15404498/viewspace-3173756/ ,如需转载,请注明出处,否则将追究法律责任。