为何GoldenGate replicat进程显示running而不应用任何记录
有时,我们会发现 replicat 进程的状态显示为 running,而 report 却显示未更新任何记录。造成这种现象主要有 4 种原因:
1、replicat 进程正在读取错误的 trail 记录
2、replicat 进程正在读取错误的 trail 文件
3、指定的表名称格式不正确
4、replicat 或 extract 进程 hang 住
发生上述四种情况时,进程的状态会显示为 running,但是查看 report 会发现没有复制任何记录。
如果是第一种情况:
执行 info extract,detail 或查看 extract 参数文件中的 rmttrail 参数
执行 info replicat,detail 或查看 replicat report
replicat 进程正在读取的 trail 文件的名称、主机、和路径必须和 extract 进程参数中指定的一样
如果是第二种情况:
执行 info replicat,detail 或者查看 replicat report
执行 ls- l 查看目标端的 trail 文件,检查正在读取的 trail 文件是否才能知道,replicat 进程正在
读取的 trail 文件的结尾未衔接到下一个可用的文件
解决方法:执行 alter replicat rep_name,extseqno nnnnnn,extrba 0 师 replicat 切换至下啊一耳光文件,然后重启 replicat 进程。
此现象通常由源端执行 etrollover 操作引起。通常我们需要修改整个同步流程中的 extract、pump 和 replicat 进程的 extseqno 和
extrba 才能解决问题。
如果是指定的表名称格式不正确:
则对 trail 文件执行 logdump 检查 trail 文件中的表名称是否与 replicat 进程参数中指定的 schema.table_name 一致
如果是进程 hang 起:
通常情况下 extract 进程 和 replicat 进程、mgr 进程都有可能出现 hang 的情况。
可以执行 ps -ef | grep proecess_name 进程查看是否运行着多个进程,或者在 ggsci 中执行 stop 操作,查看进程是否
能够正常停起,如果不行,很多时候我们直接 kill process_name (可以在 ggsci ,也可以在 os 中) 重启进程便可解决
问题。
来源 https://blog.csdn.neoracle账号t/xiangsir/article/details/8728747