1. 说明

在配置EXTRACT投递进程,每个进程大概50张表左右,在启动进程时,有其中一个进程PUMP4无法正常启动,通过查看日志:

2018-06-15 23:51:20  INFO    OGG-00993  Oracle GoldenGate Capture for Oracle, pump4.prm:  EXTRACT PUMP4 started.
2018-06-15 23:51:25 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, pump4.prm: Socket buffer size set to 27985 (flush size 27985).
2018-06-15 23:51:25 INFO OGG-01052 Oracle GoldenGate Capture for Oracle, pump4.prm: No recovery is required for target file ./dirdat/g0000000, at RBA 0
(file not opened).2018-06-15 23:51:25 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, pump4.prm: Output file ./dirdat/g0 is using format RELEASE 11.2.
2018-06-15 23:51:25 ERROR OGG-01091 Oracle GoldenGate Capture for Oracle, pump4.prm: Unable to open file "壼vӀ065536" (error 2, No such file or directory
).2018-06-15 23:51:25 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, pump4.prm: PROCESS ABENDING.

通过查看日志,发现是无法找到文件,但是这个文件名却很奇怪,无法定位到具体是哪个文件有问题,搜索了一轮也没找到个解决办法。后来通过自己的不断的猜测,尝试,终于找到了解决办法(真心不容易)。

2. 解决方法

就是将这个进程PUMP4中的表,拆分为两个进程,这样每个进程处理的表数量就会减少。然后启动后发现没有报错就正常了。但是无法理解这是为什么,因为其他进程表的数量都是一样多的(可能不是表的数量引起的问题)。
所以这里就记一下处理方法,防止别人也遇到类似的问题,可以做一个参考。

  • PUMP4拆分为:PUMP41,PUMP42.
  • 对应的REPLICAT进程REP4也拆分为:REP41,REP42

添加新的抽取进程和应用进程:

add extract pump41,exttrailsource ./dirdat/e4,begin now
add rmttrail ./dirdat/m1,extract pump41

add extract pump42,exttrailsource ./dirdat/e4,begin now
add rmttrail ./dirdat/m2,extract pump42

add replicat rep41,exttrail ./dirdat/m1,CHECKPOINTTABLE ogg.checkpoint_table
add replicat rep42,exttrail ./dirdat/m2,CHECKPOINTTABLE ogg.checkpoint_table