Oracle DB查看预警日志
Oracle DB查看预警日志
“Database(数据库)”主页>“Related Links相关链接)”区域> “Alert Log Content (预警日志内容)”
查看预警日志
每个数据库都有一个alert_<sid >.log文件。此文件位于数据库所在的服务器中,如果设置了$ORACLE_BASE,则此文件默认存储在$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace中。
数据库预警文件是按时间顺序列出消息的日志文件,例如:
• 启动时使用的任何非默认初始化参数
• 已发生的所有内部错误( ORA-600) 、块损坏错误( ORA-1578 ) 和死锁错误( ORA-60 )
• 管理操作,如SQL 语句CREATE 、ALTER、DROP DATABASE 和TABLESPACE,以及Enterprise Manager 或SQL*Plus 语句STARTUP、SHUTDOWN 、ARCHIVE LOG和RECOVER
• 与共享服务器和分派程序进程的功能相关的多个消息和错误
• 自动刷新实体化视图时发生的错误
Oracle DB 使用预警日志来保留这些事件的记录,以此作为在操作员控制台上显示这些信息的替代方法。(许多系统会同时在控制台中显示这些信息。)如果某个管理操作成功完成,系统会将“completed(已完成)”消息和一个时间戳写入预警日志中。
Enterprise Manager 可监视预警日志文件,并向你通知严重的错误。你还可以查看日志,以检查不严重的错误和参考性消息。由于预警文件会增长到无法管理的大小,因此可以定期备份该文件,并删除当前的预警文件。当数据库尝试再次写入预警文件时,会重新创建一个新预警文件。
注:$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/alert 目录中有一个XML 版本的预警日志。
要通过SQL*Plus 确定预警日志的位置,请执行以下操作:
• 使用SQL*Plus(或其它查询工具,如 SQL Developer)连接到数据库。
• 查询V$DIAG_INFO 视图。
要查看不带XML 标记的纯文本预警日志,请执行以下操作:
• 在V$DIAG_INFO 查询结果中,记下对应于Diag Trace 条目的路径。将目录更改至该路径。
• 使用文本编辑器打开alert_SID.log 文件。
要查看XML 格式的预警日志,请执行以下操作:
• 在V$DIAG_INFO 查询结果中,记下对应于Diag Alert 条目的路径。将目录更改至该路径。
• 使用文本编辑器打开log.xml文件。
sys@TEST0924> select * from v$diag_info; INST_ID NAME VALUE ---------- ------------------------- ------------------------------------------------------- 1 Diag Enabled TRUE 1 ADR Base /u01/app/oracle 1 ADR Home /u01/app/oracle/diag/rdbms/test0924/test0924 1 Diag Trace /u01/app/oracle/diag/rdbms/test0924/test0924/trace 1 Diag Alert /u01/app/oracle/diag/rdbms/test0924/test0924/alert 1 Diag Incident /u01/app/oracle/diag/rdbms/test0924/test0924/incident 1 Diag Cdump /u01/app/oracle/diag/rdbms/test0924/test0924/cdump 1 Health Monitor /u01/app/oracle/diag/rdbms/test0924/test0924/hm 1 Default Trace File /u01/app/oracle/diag/rdbms/test0924/test0924/trace/test0924_ora_24429.trc 1 Active Problem Count 0 1 Active Incident Count 0 11 rows selected.
使用跟踪文件
• 每个服务器和后台进程都会向关联的跟踪文件写入信息。
• 错误信息写入相应的跟踪文件中。
• 自动诊断资料档案库(ADR) 。
– 包含整个系统的跟踪和事件记录信息的中央资料档案库
– 存储数据库诊断数据,例如:
— 跟踪
— 预警日志
— 健康状况监视器报告
每个服务器和后台进程都会向关联的跟踪文件写入信息。进程检测到内部错误时,会将有关错误的信息转储到进程的跟踪文件。如果发生了内部错误并且在跟踪文件中写入了信息,则管理员应与Oracle 支持服务部门联系。
与后台进程关联的跟踪文件的所有文件名均包含生成该跟踪文件的进程的名称。唯一的例外是由作业队列进程( Jnnn) 生成的跟踪文件。
跟踪文件中的附加信息可以提供用于优化应用程序或实例的指导信息。后台进程总会在适当的时候将该信息写入跟踪文件中。
从Oracle Database 11 g 起,引入了一个高级错误诊断基础结构,用于避免、检测、诊断和解决问题。特别是此功能所针对的问题包含严重错误,例如由数据库代码Bug、元数据损坏和客户数据损坏导致的严重错误。
发生严重错误时,会为其分配一个意外事件编号;系统将立即捕获该错误的诊断数据(如跟踪文件),并使用该编号标记此数据。该数据随后存储在自动诊断资料档案库(ADR,数据库之外的基于文件的资料档案库)中,以后可以通过意外事件编号在其中检索和分析该数据。
ADR 是包含整个系统的跟踪和事件记录信息的中央资料档案库,用于提供数据库诊断数据(如跟踪、预警日志、健康状况监视器报告等)。
ADR 根目录又称为ADR 基目录,其位置由DIAGNOSTIC_DEST初始化参数设置。
如果省略该参数或将其留空,则数据库在启动时按如下所示设置DIAGNOSTIC_DEST:
• 如果设置了ORACLE_BASE 环境变量,则会将DIAGNOSTIC_DEST设置为由ORACLE_BASE 指定的目录。
• 如果未设置ORACLE_BASE 环境变量,则将DIAGNOSTIC_DEST设置为$ORACLE_HOME/log 。
ADR 主目录的位置由以下路径给定,该路径以ADR 基目录开头:./diag/product_type/db_id/instance_id