Oracle 12c环境下查询,alert日志并不在bdump目录下,看到网上和书上都写着可以通过初始化参数background_dump_dest来查看alter日志路径,还说警告日志文件的缺省位置是%Oracle_base%\admin\orcl\bdump,其实12c中,上述路径都不是真正存放警告日志的路径。

真是路径是要需要通过v$diag_info视图来查询,为什么呢?

因为在ORACLE 12c中,引入了ADR(Automatic Diagnostic Repository(自动诊断仓库):一个存放数据库诊断日志、跟踪文件的目录,关于ADR对应的目录位置可以通过查看v$diag_info系统视图。其实11g中也有v$diag_inifo,说是可以直接通过show parameter background_dump_dest来查看警告日志路径,但我没有测试过。

下面我是我本机测试结果,数据库版本的是12.2.0.1

select name,value from v$diag_info;

NAME          VALUE
---------------            --------------------------------------------------
Diag Enabled           TRUE
ADR Base          D:\app\oracle
ADR Home          D:\app\oracle\diag\rdbms\orcl\orcl
Diag Trace          D:\app\oracle\diag\rdbms\orcl\orcl\trace
Diag Alert          D:\app\oracle\diag\rdbms\orcl\orcl\alert
Diag Incident          D:\app\oracle\diag\rdbms\orcl\orcl\incident
Diag Cdump          D:\app\oracle\diag\rdbms\orcl\orcl\cdump
Health Monitor     D:\app\oracle\diag\rdbms\orcl\orcl\hm
Default Trace File  D:\app\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_3392.trc
Active Problem Count    1     
Active Incident  Count      6
      
Diag Trace对应的目录为文本格式的告警日志文件所在的目录,而Diag Alert对应的目录为XML格式的警告日志(对应为log.xml),实际上,你也可以在trace目录下可以看到一个alter_orcl的文本文件,它也是警告日志文件,只是是文本型的。我简单对比了一下log.xml和alter_orcl.txt,内容差不和一样。可能有些不一样,大家可以详细对比下。