点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
问题说明
同步软件ogg安装在主机11.11.11.4的目录/back_data空间使用率高,发现其中/back_data/ogg/dirdat数据文件目录占用达1.8T,其中最早是到2024年1月份,查看数据文件ep对应的进程ext-p,序列号已经到ep028742,目录下最早的是ep026914,管理进程mgr配置的清理策略是保留3天。
这样分析是清理策略没生效,需要进行分析处理。
$ df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/backuplv 3000.00 482.18 84% 3931 1% back_data
分析过程
首先要看清理策略有没有生效,可以查看mgr的purge配置和观察日志是否有清理历史日志文件的输出:
GGSCI > send manager GETPURGEOLDEXTRACTS
Sending GETPURGEOLDEXTRACTS request to MANAGER ...
PurgeOldExtracts Rules
Fileset MinHours MaxHours MinFiles MaxFiles UseCP
/back_data/ogg/dirdat/* 72 0 1 0 Y
OK
Extract Trails
Filename Oldest_Chkpt_Seqno IsTable IsVamTwoPhaseCommit
/back_data/ogg/dirdat/ea 702
/back_data/ogg/dirdat/ej 81
/back_data/ogg/dirdat/eo 2258
/back_data/ogg/dirdat/ep 26913
/back_data/ogg/dirdat/pa 239
/back_data/ogg/dirdat/pj 116
/back_data/ogg/dirdat/j2 2
/back_data/ogg/dirdat/pl 629
/back_data/ogg/dirdat/po 16
/back_data/ogg/dirdat/pp 4211
Send命令看到mgr的清理策略,ep序列号到26913,保留时间72小时。
2024-04-10 08:21:25 INFO OGG-01026 Oracle GoldenGate Capture for Oracle, ext-p.prm: Rolling over remote file ./dirdat/ep028742.
2024-04-10 08:35:09 INFO OGG-01026 Oracle GoldenGate Capture for Oracle, pum-p.prm: Rolling over remote file ./dirdat/ep026914.
2024-04-10 08:36:49 INFO OGG-00957 Oracle GoldenGate Manager for Oracle, mgr.prm: Purged old extract file /back_data/ogg/dirdat/ep026913, applying UseCheckPoints purge rule: Oldest Chkpt Seqno 26914 > 26913.
从日志来看确实有清理动作,但是清理的日志文件序列号26913很小,无法满足空间要求,同时看到pum-p进程这是投递进程的日志切换序列号是26914,因为清理使用usecheckpoints参数,也就是确保所有进程对该文件没有访问,持续往后推进,这里不免怀疑管理进程把本地trail文件序列号与远程trail文件序列号当成一样对待,都要确保序列号不再使用,这里可能也是bug,没搜到相关补丁或修复说明。
问题处理
通过上面的分析,既然管理进程MGR存在这样的问题,无法识别exttrail和rmttrail,那么有以下解决方案:
设置进程级别的purged清理,无法设置保留时间,用完就删。 手工对rmttrail进行roll over,让日志序列号进行滚动。 修改rmttrail的文件名ep->pr,原ep文件只在extract进程上发生检查点。 减少rmttrail文件大小设置,推送删除序列号。
使用修改目标端trail文件的方式,让ep在目标端的序列号进行追赶,以加快源端trail文件的删除,一天追50~70个文件,大约是50G~70G。
stop pum-p
ALTER RMTTRAIL ./dirdat/ep, EXTRACT PUM-P, MEGABYTES 100
start pum-p
修改后目标端的repliact文件和pump文件都可以正常读取后续的日志序列号。
后续建议
命名规范 确保源端和目标端的Trail文件在命名上有明显的区分,例如通过前缀或后缀来区分,以便管理进程能够准确识别并处理。 配置明确 在GoldenGate的配置文件中,明确指定源端和目标端Trail文件的存储路径和命名规则,避免混淆。
定期审查日志 建立定期审查GoldenGate日志的机制,特别是关注与清理策略、文件切换等相关的日志信息。 增强日志记录 如果当前日志记录不够详细,可以考虑调整GoldenGate的配置,增加相关日志记录的详细程度,以便更好地跟踪问题。
在本案例中,由于usecheckpoints参数的使用,管理进程在清理文件时过于保守,导致大量不再需要的Trail文件被保留。

本文作者:孙其成(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




