OGG抽取进程奇葩错误-- Unable to open file
原创
©著作权归作者所有:来自51CTO博客作者Expect_lei的原创作品,请联系作者获取转载授权,否则将追究法律责任
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