GoldenGate 怎么在源头的传输进程和目的端的server/collector进程之间分配 端口?
来源于:
How Does GoldenGate Allocates Ports between Source Extract Pump and Target Server/Collector? (文档 ID 965270.1)


适用于:
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上定位一个可用的端口.