1. 题记:
本篇博文继续详细介绍一线DBA必备技能—Oracle DB故障诊断工具ADRCI,本文主要介绍及演示使用 ADRCI 来清除诊断文件。
2. 确定 ADR(自动诊断知识库)的位置
在使用 ADRCI 清除诊断文件之前,首先要知道 ADR 的位置。可以通过以下 SQL 查询来获取 ADR 的基本路径:
SELECT value FROM v$diag_info WHERE name = ‘Diag Trace’;
将返回 ADR 中跟踪文件(trace files)所在的目录路径,其他相关的诊断文件也存储在 ADR 目录结构下的不同子目录中。
或者也可以使用show home命令(我自己经常使用这个命令,简短明了):
3. 启动 ADRCI 工具
在操作系统的命令行界面中,输入adrci命令来启动 ADRCI 工具。进入 ADRCI 的命令提示符环境:
显示了 ADRCI 的版本信息和 ADR 的基本目录(ADR base)。
4. 查看可清除的诊断文件信息
-
可以使用show problem命令查看存在的问题记录,每个问题可能关联多个诊断文件。例如:
-
还可以使用show incident命令查看具体的事件信息,包括事件对应的诊断文件。例如:
-
也可以用以下命令查看具体某一条
ADRCI> show incident -mode detail -p “incident_id=413899”
这将详细显示事件 ID 为 1 的事件信息,包括相关诊断文件的位置等细节:
5. 清除诊断文件
最常用的清除命令是purge。
- 按时间清除
例如,要清除 7 天以前的所有诊断文件,可以使用以下命令:
ADRCI> purge -age 7 -type all
这里-age 7表示清除 7 天以前的文件,-type all表示清除所有类型的诊断文件,包括跟踪文件、转储文件等。 - 按事件清除
如果只想清除与某个特定事件相关的诊断文件,可以先找到事件 ID(如通过show incident命令),然后使用以下命令:
ADRCI> purge -incident <incident_id>
其中<incident_id>是要清除的事件对应的 ID。例如,要清除事件 ID 为 413899 的相关诊断文件,命令为ADRCI> purge -incident 413899。 - 按问题清除
也可以按问题来清除相关诊断文件。先找到问题 ID(通过show problem命令),然后使用以下命令:
ADRCI> purge -problem <problem_id>
例如,要清除问题 ID 为 413899 的相关诊断文件,命令为ADRCI> purge -problem 413899。
退出 ADRCI 工具
完成诊断文件清除操作后,可以使用exit命令退出 ADRCI 工具,例如:
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB基本知识和排障案例及经验、性能调优等。