1 在运维的多个系统中,发现goldengate的MGR多一段时间,就不能自动清理trail文件,需要重新启动才可以清理,就想查明根本原因。
2 MGR 管理进程的参数配置:

源端和目标端trail 文件号的比较,认为不会由于源端和目标端trail 文件号相差太大而引起MGR 不能删除trail 的问题:

3 问题追踪
2014 年9月1日:
2014 年9月4日:
2014 年9月5日:


9 月16日,发现MGR不能清理trail文件了,但多了一个反斜杠:

9 月22日:


10 月10日:
发现MGR不能自动清除3天前的老的trail文件,使用refresh命令,发现MGR已经不能自动清除过期的trail文件。
关闭MGR,并重新启动MGR,发现又可以自动清理老的trail文件:

根据goldengate 的清除trail 文件规则:

刷新MGR 参数,看看MGR 清除trail 文件的规则是否有变化:

重新启动MGR ,查看MGR 清除trail 文件的规则:

现象描述:
11.1.1.0.3 版本的goldengate 运行一段时间后,无法自动清除trail 文件;使用refresh mgr 命令,让MGR 管理进程重新读取MGR 参数文件,MGR 管理进程就会自动清除3 天以前的trail 文件;但此时观察MGR 报告,会发现清除的trail 文件路径前多一个反斜杠('/' );MGR 进程再次运行一段时间后,又不能自动清除trail 文件,再次使用refresh mgr 命令,MGR 管理进程又可以正常工作。直到trail 文件前的反斜杠('/' )达到3 个后,使用refresh mgr 命令已经不能使mgr 管理进程自动清除trail 文件,只能重启MGR 进程,才可以使得MGR 管理进程自动清除trail 文件。
原因分析 :
当MGR 参数第一次启动时,会将MGR 参数文件读取到内存中运行,当运行一段时间后,由于某些事件的触发,会导致抽取的trail 文件的路径前多一个反斜杠('/' ),而清除TRAIL 文件的规则由于未增加一个反斜杠'/', 故goldengate 程序会认为抽取trail 的路径和清除trail 的路径不一致,达不到清除TRAIL 文件的条件,故会导致MGR 管理进程不能自动清除trail 文件;当使用refresh mgr 命令时, goldengate 用MGR 清除trail 文件规则中的Extract trails 的路径(///goldengate/dirdat/ea) 替换PurgeOldExtracts Rules 的路径(/goldengate/dirdat/*) ,此时达到清除TRAIL 文件的路径(///goldengate/dirdat/*) 和extract trails 的路径(///goldengate/dirdat/ea) 一致,故MGR 又可以正常的清除TRAIL 文件。当重新启动MGR 管理进程后,MGR 的管理进程的清除规则又恢复到原始状态,即MGR 清除规则中的抽取文件的路径(/goldengate/dirdat/ea) 和清除过期trail 文件的路径(/goldengate/dirdat/*) 恢复到正常状态,故又可以正确清除过期的trail 文件。
故认定此 MGR 管理进程运行一段时间后,不能自动清除 trail 文件的原因为: MGR 管理进程将 MGR 参数放到内存中运行一段时间,由于 goldengate 程序的 BUG ,导致自动清除 trail 文件的路径前多一个反斜杠( '/' ),从而导致 MGR 管理进程不能自动清除 trail 文件。
针对此事件,同ORACLE官方的人员沟通,他们认为是一个BUG。以下为oracle官方提供的部分佐证材料:
1 申请了2个SR,严重性为2和3.

2 SR级别为普通的答复如下:




3 SR级别为严重的答复如下:





总结:根据oracle 官方工程师所述,他们认为MGR 进程不能正常清除trail 文件,就是一个BUG ,因此建议升级goldengate 到11.2.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69996316/viewspace-2774068/ ,如需转载,请注明出处,否则将追究法律责任。