工作原因需要配置多个透明网关,研究了一下这东西比较坑,网上的透明网关多配置的资料也了了,总结了一下,有理解不到位的地方大家斧正。
实现透明网关的配置以及链接多个SQLSERVER实例的实现
- 安装
在一台服务器上安装透明网关软件。无脑下一步安装,选择1522端口,避免与oracle的1521重复。
1521端口也可以,将oracle的监听和gatway监听融合到oracle监听里。Gatway监听不启动,只启oracle监听。不建议。网上的资料一般都是这种配置方式,容易配置混乱造成各种未知错误。
- 修改网关配置文件
在gatway服务器路径D:\product\11.2.0\tg_1\dg4msql\admin下找到initdg4msql.ora文件(其中dg4msql是默认网关的SID,如要修改自己的SID则文件名也得跟着改,如改SID为mygw则文件名为initmygw.ora)
修改HS_FDS_CONNECT_INFO项,”ip,port//sqlserver实例”格式。也有”[ip]:port//sqlserver实例”格式
这里配置错误的话,建完dblink访问时候会报【无效的链接】错误。
- 修改透明网关监听
修改透明网关服务器的监听文件D:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora文件,增加透明网关实例的监听配置
SID_NAME:配置文件的SID,必须一致
ORACLE_HOME:透明网关的安装路径,如图到tg_1层
PROGRAM:配置文件目录名称,用dg4msql就行,SID改了不叫dg4msql了这里也不要乱改,会找不到配置文件
网上大部分资料都是将此步骤放在ORACLE的监听文件listener.ora里,等于网关和oracle实例都监听1521端口。不建议,会有各种问题。 - 配置tns
在ORACLE服务器上配置TNS实例信息,D:\app\haieradmin\virtual\product\12.2.0\dbhome_1\network\admin
改改host地址,注意这里是oracle的地址不是gatway的地址。
端口用1522,就是gatway监听里配置的端口
(HS =OK)这句一定要加,代表是异构实例
ORCL=和dg4msql=这些实例前面一定不要加空格,顶到头,不然会出现tns解析错误。 - 重启服务
重启ORACLE服务和ORACLE监听和gatway监听
调试的时候修改配置文件一定要重启服务。
gatway监听有可能启动不起来,要把这三个服务全停掉,然后先启动ORACLE服务,再启动oralce监听服务,再启动gatway监听服务就启动起来了 - 现在可以tnsping 网关SID测试一下了
成功!!
如果出现卡住或者解析不了的情况,很有可能是tnsnames解析有问题,去看一下tnsnames.ora文件格式是不有问题 - 创建dblink,找个试图测试
create public database link SQLSERVERLINK connect to sa identified by "123456" using 'dg4msql' - 成功!!
下面是一个oracle对应多个sqlserver实例的透明网关配置
1、一个ORACLE如果配置多个透明网关信息,不需要安装多次网关软件,只需要安装一次就行
2、新增一个initSID.ora文件,如initdg2msql.ora,上面【步骤2】;然后修改第二个网关要链接的sqlserver信息。
3、在gatway的监听文件里增加dg2msql的监听实例,路径为:D:\app\haieradmin\virtual\product\12.2.0\dbhome_1\network\admin\listener.ora
SID列表里两个监听实例,一个是dg4msql一个是后加的dg2msql。该监听端口为1522
这步网上的资料都是配置在oracle的监听里面的,与网上不同我们用自己的gatway监听
注意:新增的这个实例PROGRAM也是dg4msql
4、同上面【步骤4】配置tns信息加上dg2msql的实例
5、成功!!
【其他报错排错】:
一、oracle 11g gateway 连接sqlserver 2005 ,ORA-28545解决
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 DJ_MBCBSQLSERVERLINK)
该错误一般是端口冲突了,去排查端口配置情况
- ORA-12154: TNS: 无法解析指定的连接标识符
tnsnames解析有问题,去排查这个文件是不是格式错误 - Dblink创建完成查询提示 无效的链接错误
网关initSID.ora 配置的路径错误,ip端口实例都没问题的话很可能是格式问题,换种配置格式试试 - 配置文件变更后,一定要重启服务
- 多网关,网关端口一定要一致,并不是一个网关一个端口