初始化参数background_dump_dest和user_dump_dest的区别
Oracle数据库告警日志记录数据库运行时的活动信息,对于Oracle 11g及其之前的版本,其在文件系统中的路径由初始化参数background_dump_dest决定。而user_dump_dest用于指定在哪个目录中保存针对用户进程行为进行跟踪的debug文件。默认情况下,background_dump_dest和user_dump_dest的值是相同的。
至目前为止,Oracle数据库的所有版本都支持这两个参数。
告警日志文件名的构成
alert_<ORACLE_SID>.log
查看初始化参数background_dump_dest的值,显示告警日志路径
show parameter background_dump_dest
除了从spfile获得告警日志路径之外,还可以从V$PARAMETER视图查询background_dump_dest的当前生效值,例如:
select name,value from V$PARAMETER where name in ('background_dump_dest','user_dump_dest');
以下是一个真实例子,这个例子中的background_dump_dest和user_dump_dest的值不相同。
SQL> select name,value from V$PARAMETER where name in ('background_dump_dest','user_dump_dest');
NAME VALUE
-------------------- --------------------------------------------------
background_dump_dest /oracle/EQ2/saptrace/background
user_dump_dest /oracle/EQ2/saptrace/usertrace
BACKGROUND_DUMP_DEST参数值的构成
如果在安装数据库时设置过环境变量$ORACLE_BASE,那么DIAGNOSTIC_DEST的默认值就等于$ORACLE_BASE的值。如果未设置过$ORACLE_BASE,则DIAGNOSTIC_DEST的默认值为$ORACLE_HOME/log。
在12c之前的版本中,BACKGROUND_DUMP_DEST的值基于DIAGNOSTIC_DEST的值,因此BACKGROUND_DUMP_DEST指向路径<diagnostic_dest>/product_type/product_id/instance_id/trace。
但是自12.1.0.2起,BACKGROUND_DUMP_DEST的值指向$ORACLE_HOME/rdbms/log。
Oracle在11g及之后版本中引入了ADR概念(即Automatic Diagnostic Repository,这个概念在10g及之前版本中是没有的),因此自11g开始,还可以从v$diag_info视图中查询告警日志路径。
select name,value from v$diag_info where name='Diag Trace';
12c及之后版本数据库的告警日志路径不是BACKGROUND_DUMP_DEST参数的值,应该从v$diag_info视图中取得该路径。