暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ogg目录数据文件无法自动删除处理方案

IT那活儿 2025-06-16
138

点击上方“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,没搜到相关补丁或修复说明。


问题处理

3.1 解决方案

通过上面的分析,既然管理进程MGR存在这样的问题,无法识别exttrail和rmttrail,那么有以下解决方案:

  • 设置进程级别的purged清理,无法设置保留时间,用完就删。
  • 手工对rmttrail进行roll over,让日志序列号进行滚动。
  • 修改rmttrail的文件名ep->pr,原ep文件只在extract进程上发生检查点。
  • 减少rmttrail文件大小设置,推送删除序列号。
3.2 最终采用方案

使用修改目标端trail文件的方式,让ep在目标端的序列号进行追赶,以加快源端trail文件的删除,一天追50~70个文件,大约是50G~70G。

stop pum-p
ALTER RMTTRAIL ./dirdat/ep, EXTRACT PUM-P, MEGABYTES 100
start pum-p

修改后目标端的repliact文件和pump文件都可以正常读取后续的日志序列号。


后续建议

4.1 源端与目标端Trail文件的明确区分
在GoldenGate(OGG)的部署中,源端(Extract进程)和目标端(Replicat或Pump进程)的Trail文件虽然功能相似,但在管理和维护上应被视为两个独立的系统部分。
从本案例中可以看出,由于Trail文件的命名或管理策略未明确区分源端和目标端,导致管理进程(mgr)在处理清理策略时可能出现了混淆,错误地将源端和目标端的Trail文件序列号视为同一套系统内的文件,从而影响了清理策略的有效性。
改进措施:
  • 命名规范
    确保源端和目标端的Trail文件在命名上有明显的区分,例如通过前缀或后缀来区分,以便管理进程能够准确识别并处理。
  • 配置明确
    在GoldenGate的配置文件中,明确指定源端和目标端Trail文件的存储路径和命名规则,避免混淆。
4.2 细致分析日志,发现潜在问题
日志是系统行为的重要记录,通过细致分析日志,可以发现许多隐藏的问题和线索。
在本案例中,通过查看GoldenGate的日志文件,发现了管理进程(mgr)在清理Trail文件时存在的问题,即清理的日志文件序列号远低于实际需求,这直接导致了空间告警的问题。
改进措施:
  • 定期审查日志
    建立定期审查GoldenGate日志的机制,特别是关注与清理策略、文件切换等相关的日志信息。
  • 增强日志记录
    如果当前日志记录不够详细,可以考虑调整GoldenGate的配置,增加相关日志记录的详细程度,以便更好地跟踪问题。
4.3 理解并使用好usecheckpoints参数
usecheckpoints参数是GoldenGate中一个重要的配置选项,它决定了管理进程在清理Trail文件时是否依赖于检查点信息。

在本案例中,由于usecheckpoints参数的使用,管理进程在清理文件时过于保守,导致大量不再需要的Trail文件被保留。


END


本文作者:孙其成(上海新炬中北团队)

本文来源:“IT那活儿”公众号

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

评论