大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。
本章目标:掌握本章核心知识点
前置要求:完成前序章节学习
预计时长:60 分钟
健康检查还在慢慢翻alert日志吗?
清理日志还在繁琐的手动rm吗?
Oracle要求收集诊断日志还在慢慢查找吗?
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、所有平台均支持。
例如,需要检查主机中数据库实例运行是否存在错误:
首先 su - oracle 连接oracle用户,使用 adrci 命令进入控制台:
adrci
输入 show problem 来查看所有实例的运行情况:
problem
可以看到当前实例 cdb19c1 运行过程中没有发生严重错误。如果有多个实例,这里会显示所有实例的情况。
相信大家肯定遇到过因为数据库日志过大的问题,导致撑满磁盘空间或者数据库宕机的情况。所以,及时清理数据库日志是DBA需要经常做的事,通过ADRCI可以方便快捷又安全的实现。
一般当数据库遇到一些DBA无法解决的问题或者内部600错误时,会在MOS提交SR来获取Oracle原厂的帮助,当技术人员要求我们提供相关日志时,可以通过adrci工具来打包。
首先通过 show incident -all 获取错误事件ID号
如需要查看错误事件详细信息:show incident -mode detail -p "incident_id=72697"
查看 ips 帮助命令:
help ips
通过以下命令打包错误事件:
ips基于事件ID创建一个package:ips create package incident 72697
将事件加入到package中:ips add incident 72697 package 1 ,可加入多个事件。
打包成zip文件放入主机指定位置:ips generate package 1 in /home/oracle。