大家好,我是 JiekeXu,江湖人称“强哥”,青学会MOP技术社区主席,荣获Oracle ACE Pro称号,OpenTenBase ACE,金仓社区最具价值倡导者KVA,崖山最具价值专家YVP,IvorySQL开源社区专家顾问委员会成员,KWDB社区MVP,墨天轮MVP,墨天轮连续多年度“墨力之星”,拥有Oracle OCP/OCM认证,MySQL 5.7/8.0 OCP认证以及金仓KCA、KCP、KCM、KCSM证书,TiDB PCTA/PCTP证书、PCA、OBCA、OGCA等众多国产数据库认证证书,专注于数据库技术、系统架构及大数据运维,致力于分享最纯粹、最接地气的 DBA 实战与前沿技术洞察。如果你也对数据技术充满热忱,欢迎关注我的微信公众号“JiekeXu DBA之路”点赞、转发与评论,谢谢!

前 言
是否你也长期饱受数据库服务器文件系统使用率告警的困扰?是否时常因 Oracle adump 审计日志疯狂堆积,引发 inode 耗尽、数据库异常卡顿的问题?又或是监听日志持续膨胀,最终导致监听无法正常工作、业务断连而束手无策?
日常手动清理日志不仅操作繁琐、耗时长,误删核心文件还存在极高数据库运行风险。为此,一款适配 Linux 环境的日志清理工具应运而生 —— purgelogs 命令工具,它专为 Oracle 数据库各类冗余文件设计,能够安全、高效清理审计日志、监听日志、各类监控垃圾日志,从根源解决磁盘占满、inode 耗尽、监听失效等一系列运维难题,充分体现了使用该工具清理 Oracle 垃圾文件的必要性、安全性与高效快捷性。
官方推荐清理工具 purgelogs
一键自动化归档并清理由 Oracle Grid Infrastructure、RDBMS、TFA、OSWatcher、OAK 和 DCS 在一体机 Exadata、ODA、DS、ExaCS 和 ExaC@C 上生成的跟踪信息和日志。

purgelogs 在数据库主机本身上运行。它会自动发现您的 Oracle 主目录,遍历正确的 ADR/TFA/OSWatcher/OAK/DCS 路径,然后删除旧的跟踪文件和日志,或将它们存档到本地文件系统路径,或直接存档到OCI对象存储桶中。
每个组件的默认保留期为 30 天,purgelogs 被设计为在所有集群节点上运行(通常作为 cron 作业)。
下载安装 purgelogs
[root@JiekeXu-OGG ~]# unzip p36518442_201_Linux-x86-64.zip
Archive: p36518442_201_Linux-x86-64.zip
inflating: readme_purgelogs-2.0.1-18.el7.x86_64.txt
inflating: purgelogs-2.0.1-18.el7.x86_64.rpm
[root@JiekeXu-OGG ~]# rpm -ivh purgelogs-2.0.1-18.el7.x86_64.rpm
warning: purgelogs-2.0.1-18.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID bcb53dc0: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:purgelogs-2.0.1-18 ################################# [100%]
purgelogs-2.0.1.18 binary has been installed on /opt/purgelogs succesfully!
[root@JiekeXu-OGG ~]# ls -l /opt/purgelogs
total 10448
-rwxr-xr-x 1 root root 10698525 Jul 7 2025 purgelogs.bin
--升级 rpm 包
# rpm -Uvh purgelogs-2.0.1-18.el7.x86_64.rpm --升级
新版本及版本发布时间,可在 MOS 直接搜索对应补丁号下载或者根据 KB118547 文中链接下载。 p39341353_purgelogs-401_Linux-x86-64.zip p39341345_purgelogs-401_Linux-x86-64.zip


使用 purgelogs
针对 Grid/RDBMS homes,清理 Oracle Alert 告警日志、Incident、Trace 跟踪日志、Cdump 日志、HM 日志、GPNP Client 日志和 ACFS 日志(从18c版本及以上开始):删除所有超过 15 天的文件。
-- 默认清理 30 天以前的日志
# Default cleanup: GI + OH + TFA + OSW + ODA, all at 30 days
/opt/purgelogs/purgelogs.bin cleanup
[root@JiekeXu-OGG purgelogs]# ./purgelogs.bin cleanup --help
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
PURGELOGS - Archive & Cleanup GI/RDBMS logs and traces
Version: 2.0.1-18
Copyright (c) 2015-2025 Oracle and/or its affiliates.
--------------------------------------------------------
Author: Ruggero Citton <ruggero.citton@oracle.com>
RAC Pack, Cloud Innovation and Solution Engineering Team
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
Usage:
purgelogs.bin cleanup [--days <days> [--aud] [--lsnr] [--noadrcilsnr]] |
[--orcl <days> [--aud] [--lsnr] [--noadrcilsnr]] |
[--tfa <days>] |
[--osw <days>] |
[--oda <days>] |
[--extra '<folder>':<days> | [, '<folder>':<days>]]
[--automigrate]
[--dryrun]
[--nosudo]
purgeLogs cleanup OPTIONS
--days <days> Purge orcl,tfa,osw,oda components logs & traces older then # days
--orcl <days> Purge only GI/RDBMS logs & traces (Default 30 days)
--tfa <days> Purge only TFA repository older then # days (Default 30 days)
--osw <days> Purge only OSW archives older then # days (Default 30 days)
--oda <days> Purge only ODA logs and trace older then # days (Default 30 days)
--extra '<folder>':<days> Purge only files in user specified folders (Default 30 days)
--aud Purge Audit logs based on '-orcl <days>' option
--lsnr It will force the cleanup of listeners log independently by the age
--noadrcilsnr It will skip adrci listener alert purge
--automigrate It will run the adrci schema migrate commands in case of DIA-49803
--dryrun It will show the purge commands w/o execute them
--help Display this help and exit
[root@JiekeXu-OGG purgelogs]# ./purgelogs.bin cleanup --orcl 15
INFO: 2026-07-07 17:04:58: Please check the logfile '/opt/purgelogs/out/log/PURGELOGS_29081.log' for more details
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
PURGELOGS - Archive & Cleanup GI/RDBMS logs and traces
Version: 2.0.1-18
Copyright (c) 2015-2025 Oracle and/or its affiliates.
--------------------------------------------------------
Author: Ruggero Citton <ruggero.citton@oracle.com>
RAC Pack, Cloud Innovation and Solution Engineering Team
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
INFO: 2026-07-07 17:04:58: Clusterware is not installed, skipping GI cleanup
~~~~~~~~~~~~~~~~~~~~~~adrci RDBMS purge started~~~~~~~~~~~~~~~~~~~~~~
INFO: 2026-07-07 17:04:58: Getting dbhome for 'ogg'
INFO: 2026-07-07 17:05:04: adrci RDBMS purging diagnostic destination diag/rdbms/ogg/ogg
INFO: 2026-07-07 17:05:04: ... purging ALERT older than 15 days
INFO: 2026-07-07 17:05:04: ... purging INCIDENT older than 15 days
INFO: 2026-07-07 17:05:04: ... purging TRACE older than 15 days
INFO: 2026-07-07 17:05:04: ... purging CDUMP older than 15 days
INFO: 2026-07-07 17:05:04: ... purging HM older than 15 days
INFO: 2026-07-07 17:05:04: ... purging STAGE older than 15 days
INFO: 2026-07-07 17:05:04: ... purging SWEEP older than 15 days
INFO: 2026-07-07 17:05:04: ... purging UTSCDMP older than 15 days
~~~~~~~~~~~~~~~~~~~~OH/RDBMS/log purge started~~~~~~~~~~~~~~~~~~~~~~~~
INFO: 2026-07-07 17:05:04: OH RDBMS logs purge started
INFO: 2026-07-07 17:05:04: Purging OH RDBMS logs on '/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/log' older then 15 days
SUCCESS: 2026-07-07 17:05:04: Cleanup completed succesfully!

还可以使用 “–aud” 选项清理包含 GI 和 RDBMS 的审计文件,例如:
[root@JiekeXu-Rac1 ~]# /opt/purgelogs/purgelogs.bin cleanup --orcl 15 --aud INFO: 2026-07-07 17:14:33: Please check the logfile '/opt/purgelogs/out/log/PURGELOGS_15175.log' for more details │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ PURGELOGS - Archive & Cleanup GI/RDBMS logs and traces Version: 2.0.1-18 Copyright (c) 2015-2025 Oracle and/or its affiliates. -------------------------------------------------------- Author: Ruggero Citton <ruggero.citton@oracle.com> RAC Pack, Cloud Innovation and Solution Engineering Team │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ INFO: 2026-07-07 17:14:33: GI Audit logs purge started INFO: 2026-07-07 17:14:33: ... purging GI Audit logs under '/u01/app/19.0.0/grid/rdbms/audit' older then 15 days INFO: 2026-07-07 17:14:33: ... purging GI Audit logs under '/u01/app/grid/admin/_mgmtdb/adump' older then 15 days WARNING: 2026-07-07 17:14:33: Path /u01/app/grid/admin/_mgmtdb/adump does not exist, GI Audit archive logs cleanup skipped... ~~~~~~~~~~~~~~~~~~~~~~adrci GI purge started~~~~~~~~~~~~~~~~~~~~~~~~~~ INFO: 2026-07-07 17:14:33: Checking if this is an Oracle Restart environment INFO: 2026-07-07 17:14:33: adrci GI purging diagnostic destination diag/asm/+asm/+ASM1 INFO: 2026-07-07 17:14:33: ... purging ALERT older than 15 days INFO: 2026-07-07 17:14:33: ... purging INCIDENT older than 15 days INFO: 2026-07-07 17:14:33: ... purging TRACE older than 15 days INFO: 2026-07-07 17:14:33: ... purging CDUMP older than 15 days INFO: 2026-07-07 17:14:34: ... purging STAGE older than 15 days INFO: 2026-07-07 17:14:34: ... purging SWEEP older than 15 days INFO: 2026-07-07 17:14:34: ... purging HM older than 15 days INFO: 2026-07-07 17:14:34: ... purging UTSCDMP older than 15 days INFO: 2026-07-07 17:14:34: adrci GI purging diagnostic destination diag/crs/JiekeXu-Rac1/crs INFO: 2026-07-07 17:14:51: Purging GPNP client logs older then 15 days ~~~~~~~~~~~~~~~~~~~~~~ACFS purge started~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INFO: 2026-07-07 17:14:51: Purging ACFS logs older then 15 days ~~~~~~~~~~~~~~~~~~~~~~adrci RDBMS purge started~~~~~~~~~~~~~~~~~~~~~~ INFO: 2026-07-07 17:14:51: Getting dbhome for 'JXRUATDB' WARNING: 2026-07-07 17:14:51: No ADR homes are set ~~~~~~~~~~~~~~~~~~~~OH/RDBMS/log purge started~~~~~~~~~~~~~~~~~~~~~~~~ INFO: 2026-07-07 17:14:52: OH RDBMS logs purge started INFO: 2026-07-07 17:14:53: Purging OH RDBMS logs on '/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/log' older then 15 days ~~~~~~~~~~~~~~~~~~~~RDBMS Audit logs purge started~~~~~~~~~~~~~~~~~~~~~~~~~ INFO: 2026-07-07 17:14:53: RDBMS Audit logs purge started INFO: 2026-07-07 17:14:54: Purging RDBMS Audit logs on '/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/audit' older then 15 days INFO: 2026-07-07 17:14:54: Purging RDBMS Audit logs on '/u01/app/oracle/admin/Jiekedb/adump' older then 15 days readdir() attempted on invalid dirhandle $dh at (eval 320) line 505. closedir() attempted on invalid dirhandle $dh at (eval 320) line 506. SUCCESS: 2026-07-07 17:15:05: Cleanup completed succesfully! ----------------------------------------------------------------------- Above warning 'DIA-49803' could be solved executing following command: /opt/purgelogs/out/shell/migrate_schema_15175.sh -----------------------------------------------------------------------
还可以指定具体目录,清理对应目录下的文件,清理来自某些指定“额外”文件夹(如/tmp、/var/log、/opt/app)的文件/痕迹/核心数据等,并设定不同的保留期限。比如:
/opt/purgelogs/purgelogs.bin cleanup --extra '/tmp':10,'/var/log':20,'/opt/app':30
清理 OSWatcher/ExaWatcher 存档文件和 OAK 日志,删除所有超过 35 天的文件。
/opt/purgelogs/purgelogs.bin cleanup --osw 35 --oda 35
清理监听日志,使用 ‘-lsnr’ 选项,purgelogs 将强制按时间独立清理监听器日志。
/opt/purgelogs/purgelogs.bin cleanup --orcl 50 --lsnr
将 purgeLogs 设置为 crontab 作业
例如,我们正在设置 purgleogs 任务,每天凌晨 2 点执行一次,清除超过 30天 的 GI/RDBMS 跟踪日志,并保留不超过 10 天的TFA、OSWatcher 和 ODA 日志。
00 02 * * * /opt/purgelogs/purgelogs.bin cleanup --orcl 30 --tfa 10 --osw 10 --oda 10
注意事项:
- 1、使用 root 用户安装和执行,或者配置 sudo 权限。
- 2、不能清理归档日志,不管是 ASM 或者文件系统中的归档日志,均不能清理。
- 3、对于单机没有 GI 的数据库,必须配置
/etc/oratab文件。 - 4、如果你的环境是 Oracle RAC 环境,那么可以配置
tfactl set manageLogsAutoPurge=ON来清理日志。
# TFA 关闭自动清理,默认清理 30 天前的各种日志
tfactl set manageLogsAutoPurge=OFF
# 查看自动清理开关和保留天数
tfactl print config | grep -i purge
# 查看 TFA 自动清理历史记录
tfactl print purgelog
# 修改日志仅保留7天
tfactl set manageLogsAutoPurgeAge=7
# 手动立即执行一次全量日志清理(不依赖定时任务)
tfactl purge
purgelog 新版本还可以支持更多功能,更多使用方法和细节,请参考 MOS 官方说明。
/opt/purgelogs/purgelogs.bin cleanup --help /opt/purgelogs/purgelogs.bin archive --help /opt/purgelogs/purgelogs.bin encpass --help

参考链接
purgeLogs: Archive & Cleanup traces, logs in one command (KB118547)
purgeLogs: Archive & Cleanup traces, logs in one command (Doc ID 2081655.1)
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————





