背景:
有一台客户服务器,ogg 10.2 的版本有异常,升级到11.2的版本后。mgr和eora 正常running。但是pump进程异常abened。目标端ogg版本为11.1.
排查问题:
查看pump的日志
命令:view param pump 或者到路径 dirrpt 中查看pump 最新进程日志
结果:日志提示:
ERROR OGG-01416 Oracle GoldenGate Capture for Oracle, dpeya.prm: File ./dirdat/ya001542, with format RELEASE 9.0/9.5, does not match current format specification of RELEASE 10.4/11.1. Modify the parameter file to specify format RELEASE 9.0/9.5 or issue ETROLLOVER prior to restart.
ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, pump.prm: PROCESS ABENDING.
解决问题:
停止进程:stop 命令(stop mgr stop eora stop pump )
指定目标端ogg版本:在dirrpm文件路径中,设置目标文件版本(抽取参数文件和推送 参数文件都需要配置,且版本号相同)
示例:rmttrail /u01/golden122011/dirdat/o2,format release 11.1
指定版本后,不能再写入用一个trail文件,需要让源端程序回滚,然后在目标端生成新的文件。解决方案:
执行命令:alter extract eora, etrollover 和 alter extract pump, etrollover 因为源端的进程执行ETROLLOVER操作后,进程的eora和pump号被重置至下一个extseqno号的第0号extrba,而datapump并不知道extract进程发生了这个变化,仍然守望在extract ETROLLOVER前的extseqno和extrba号上,永远也等不到这个extseqno上有新的RBA变化,造成就无法将extract新抽取到的数据,传递到目标端去。所以,在extract进程ETROLLOVER后,需要使用“Alterextract group_name EXTSEQNO X, EXTRBA 0”的命令,重置checkpoint位置,datadump进程才能正常的将数据继续传递到远端。其中 EXTSEQNO抽取文件号,填写在dirdat目录下pump抽取进程生成的新的文件的号。
命令:ALTER REPLICAT rep2,EXTSEQNO 1, EXTRBA 0
结果:执行 start 命令,info all 如果所有经常正常running,配置完成