场景是这样的:
源端SOURCE处于内网,目标端TARGET处于DMZ区域,之前已申请开通了源端访问目标端的7809端口,配置PUMP后,PUMP进程一直无法正常工作:
WARNING OGG-01223 Oracle GoldenGate Capture for Oracle, P2IPLAN.prm: TCP/IP error 110 (Connection timed out).
从源端PING目标端,也能PING通,使用telnet测试7809端口,也能顺利连接上:
$ telnet X.X.X.X 7809
Trying X.X.X.X ...
Connected to X.X.X.X (X.X.X.X).
Escape character is '^]'.
Connection closed by foreign host.
但是PUMP进程就是无法连接到目标端!
在确保PUMP的各项配置正确后,使用tcpdump来抓取网络包:
在源端运行:tcpdump -v host and
经过一段时间的跟踪,发现:
。。。
14:28:25.836419 IP (tos 0x0, ttl 64, id 24609, offset 0, flags [DF], proto: TCP (6), length: 60)
SOURCE.53922 > TARGET.7819: S, cksum 0x6026 (correct), 2731187048:2731187048(0) win 5840
。。。
15:05:07.276469 IP (tos 0x0, ttl 61, id 48226, offset 0, flags [DF], proto: TCP (6), length: 52)
SOURCE.57845 > TARGET.7810: ., cksum 0xb486 (correct), ack 400 win 46
PUMP进程访问的并不是7809端口!每次启动进程访问的端口是有变化的,7810、7819。。。,查看官方文档[Oracle GoldenGate Windows and UNIX Administrator’s Guide],在P20-P21的Maintaining ports for remote connections through firewalls一节中说明了
在有防火墙的网络中,需要开通额外的端口,并使用DYNAMICPORTLIST参数,指定端口范围。问题已经找到,那就实践看看,重新申请开通了
源端访问目标端的7809-7830端口,并修改目标端MANAGER进程的参数,加上:
。。。
DYNAMICPORTLIST 7809-7830
。。。
重新启动MANAGER和PUMP进程,一切OK了!Enjoy!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13885898/viewspace-1651406/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13885898/viewspace-1651406/