适用于: Oracle GoldenGate - Version 9.5.0.0 and later Information in this document applies to any platform. Checked for relevance on 24-May-2012
解决方案: 背景: 通常,OGG 通过TCP/IP来将OGG trail 从源头move到目的端。 抽取进程(通常叫做Extract Pump) 读取本地的trail file ,并通过网络发送数据给目标主机上的server进程(即:collector)
配置如下: Extract Pump进程的参数文件中有rmthost参数,类似如下: RMTHOST , MGRPORT Example: RMTHOST REMOTESERVER, MGRPORT 7809 为了控制目的端主机上的端口使用,通常使用manager 进程的DYNAMICPORTLIST 参数,该参数限制OGG使用的端口的范围 例如: PORT 7809 DYNAMICPORTLIST 8000-8010
那么,OGG怎么在源头的传输进程和目的端的server/collector进程之间分配 端口呢?
当Extract Pump进程使用 rmthost参数中指定的端口号(RMTHOST REMOTESERVER, MGRPORT 7809)来启动到目的端的链路时, manager进程会运行在目的端主机上,并监听在7809端口上。 The target manager will start a collector and pass to the collector if configured the DYAMICPORTLIST range of ports. If this is not configured random ports will be used. 如上两句不翻译了,主要是pass to不知道该翻译成啥比较合适。。。 目的端的manager进程回到7809端口上监听。 Collector进程将会按顺序尝试使用(称之为:TCP/IP BIND)每个port,直到collector发现有一个port端口能工作。 Collector进程将会与Extract pump进行联系,并指示Extract pump 进程使用这个端口进行通信。
注意: 你可以使用如下命令来检查目的端上的端口使用情况: GGSCI > SEND MGR GETPORTINFO. 在OGG version 11之前,manager进程搜索server上的一个端口,而不是从server上定位一个可用的端口.