当前位置 博文首页 > LuciferLiu_DBA:Oracle 管理诊断数据工具ADRCI,看这一篇就够了
作者:LuciferLiu
中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。
健康检查还在慢慢翻alert日志吗?
清理日志还在繁琐的手动rm吗?
Oracle要求收集诊断日志还在慢慢查找吗?
ADR Command Interpreter(ADRCI)
。1、查看自动诊断存储库 (ADR) 中的诊断数据。
2、查看运行状况监视器报告。
3、将事件和问题信息打包到一个 zip 文件中,以便传输给 Oracle 支持。
ADR 是一个基于文件的数据库诊断数据存储库,例如跟踪、转储、警报日志、运行状况监视器报告等。 它具有跨多个实例和多个产品的统一目录结构。 从版本 11g 开始,数据库、自动存储管理 (ASM) 和其他 Oracle 产品或组件将所有诊断数据存储在 ADR 中。
1、无需数据库实例开启,不影响实例运行。
2、统一管理多个产品和实例,无需反复切换环境变量。
3、记录数据库发生的严重错误,方便DBA在ADR中跟踪问题。 每个问题都有一个问题键和一个唯一的问题 ID。可通过命令show problem
来查看错误。
4、每个问题根据发生的次数记录为一个个事件。当DBA在ADR中跟踪事件,每个事件都由一个数字事件 ID 标识,该 ID 在 ADR 中是唯一的。可通过命令show incident -all
来查看错误。
5、可以快速将事件和问题信息打包到一个 zip 文件中,以便传输给 Oracle 支持。
6、可以快速清理大日志文件。
7、所有平台均支持。
作为一名DBA,每天对数据库进行健康检查是家常便饭了,那么如何快速高效的进行检查就很重要了。通过ADRCI工具就可以实现,接下来看看如何使用:
例如,需要检查主机中数据库实例运行是否存在错误:
首先su - oracle
连接oracle用户,使用adrci
命令进入控制台:
输入show problem
来查看所有实例的运行情况:
可以看到当前实例cdb19c1
运行过程中没有发生严重错误。如果有多个实例,这里会显示所有实例的情况。
相信大家肯定遇到过因为数据库日志过大的问题,导致撑满磁盘空间或者数据库宕机的情况。所以,及时清理数据库日志是DBA需要经常做的事,通过ADRCI可以方便快捷又安全的实现。
首先,通过命令
show home
查看监听日志的位置:
设置当前路径set home diag/tnslsnr/rac01/listener
使用help purge
命令查看帮助:
假设当前alert日志为5G,需要清理日,按时间进行清理,保留10天日志:purge -age 14400 -type alert
。
-age
的单位是分钟
。
当然,也可以通过指定大小-size
来进行清理整个ADR目录,单位是bytes
。
一般当数据库遇到一些DBA无法解决的问题或者内部600错误时,会在MOS提交SR来获取Oracle原厂的帮助,当技术人员要求我们提供相关日志时,可以通过adrci工具来打包。
首先通过
show incident -all
获取错误事件ID号
如需要查看错误事件详细信息:show incident -mode detail -p "incident_id=72697"
查看ips
帮助命令:
通过以下命令打包错误事件:
ips基于事件ID创建一个package:ips create package incident 72697
将事件加入到package中:ips add incident 72697 package 1
,可加入多个事件。
打包成zip文件放入主机指定位置:ips generate package 1 in /home/oracle
。
参考官方文章: ADRCI: ADR Command Interpreter