ADR 的作用
Oracle 数据库如果出现故障,我们的第一个反应是查看数据库的 alert log,但一些工程师对 alert log 不熟悉,实际上 alert log 位于Oracle 数据库自动诊断库(Automatic Diagnostic Repository,以下简称 ADR) 中,要熟悉 alert log,我们必需全面了解 ADR 的概念。ADR(Automatic Diagnostic Repository)是一个基于文件的存储库,用于存储数据库诊断数据,如跟踪、转储、警报日志、运行状况监视报告等。它具有跨多个实例和多个产品的统一目录结构。为什么基于文件的原因是显而易见的,因为数据库出现故障的时候数据库可能无法打开,将诊断信息放到文件里面保证了随时可以查阅。数据库、Oracle自动存储管理(Oracle ASM)、侦听器、Oracle Clusterware和其他Oracle产品或组件将所有诊断数据存储在ADR中。每个产品的每个实例都将诊断数据存储在ADR中自己的主目录下。例如,在具有共享存储和 Oracle ASM 的 Oracle Real Application Clusters 环境中,每个数据库实例和每个 Oracle ASM 实例都有一个ADR主目录。
SQL> col name for a22
SQL> col value for a50
SQL> select value,name from v$diag_info;
VALUE NAME
-------------------------------------------------- ----------------------
TRUE Diag Enabled
/u01/app/oracle ADR Base
/u01/app/oracle/diag/rdbms/orcl/orcl ADR Home
/u01/app/oracle/diag/rdbms/orcl/orcl/trace Diag Trace
/u01/app/oracle/diag/rdbms/orcl/orcl/alert Diag Alert
/u01/app/oracle/diag/rdbms/orcl/orcl/incident Diag Incident
/u01/app/oracle/diag/rdbms/orcl/orcl/cdump Diag Cdump
/u01/app/oracle/diag/rdbms/orcl/orcl/hm Health Monitor
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_or Default Trace File
a_2802.trc
0 Active Problem Count
0 Active Incident Count
/u01/app/oracle/product/19.3.0/dbhome_1 ORACLE_HOME
12 rows selected.
其中 ADR Base是ADR基目录的路径;
ADR Home是当前数据库实例的ADR 主目录的路径。每个实例一个单独的ADR Home目录;
Diag Alert保存的是xml格式的alert日志;
Diag Trace保存的是文本格式的alert日志。
Alert Log
Alert Log 可能是运维工程师最关心的日志,它是按时间顺序记录消息和错误的日志。每个 ADR 家目录中都有一个警报日志。每个警报日志都特定于其组件类型,如数据库、Oracle ASM、侦听器和Oracle Clusterware。
对于数据库,Alert Log 包含有关以下内容的消息:
严重错误(事件)
管理操作,如启动或关闭数据库、恢复数据库、创建或删除表空间等。
自动刷新实化视图时出错
其他数据库事件
Alert Log 的格式有两种,XML 格式和文本格式。您可以使用 cloud control 和ADRCI实用程序以文本格式(去掉XML标记)查看警报日志。为了向后兼容,ADR中还存储了一个文本格式的警报日志版本。但是,Oracle建议使用 XML 格式的版本对警报日志内容进行任何解析,因为文本格式是非结构化的,可能会因版本而异。
对于我们前面列举的 orcl 数据库,这两类的 alert log 如下:
版权声明:本文为博主原创文章,未经博主允许不得转载。
oracle
- 上一篇:Oracle RAC升级小补丁
- 下一篇:oracle round函数