Oracle 12c环境下查询,alert日志并不在bdump目录下,看到网上和书上都写着可以通过初始化参数background_dump_dest来查看alter日志路径,还说警告日志文件的缺省位置是%Oracle_base%adminorcldump,其实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:apporacle
ADR Home D:apporaclediag
dbmsorclorcl
Diag Trace D:apporaclediag
dbmsorclorcl race
Diag Alert D:apporaclediag
dbmsorclorclalert
Diag Incident D:apporaclediag
dbmsorclorclincident
Diag Cdump D:apporaclediag
dbmsorclorclcdump
Health Monitor D:apporaclediag
dbmsorclorclhm
Default Trace File D:apporaclediag
dbmsorclorcl raceorcl_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,内容差不和一样。可能有些不一样,大家可以详细对比下。