工作中被问的最多的问题就是:alert日志在哪儿找。。
11g版本
从 Oracle 11g 开始,Oracle 以 XML与传统的文本两种格式提供 Alert日志。
- 新的日志位置由 Automatic Diagnostic Repository (ADR)决定。
- 可以通过新的初始化参数
DIAGNOSTIC_DEST
控制 ADR BASE的位置。 - 如果没有设定这个初始化参数的位置,而只设置 ORACLE_BASE环境变量的话,那么,各种日志的位置在 :
$ORACLE_BASE/diag/product_type{eg:rdbms}}/product_id{eg:11g}/instance_id
- 既没有设定
DIAGNOSTIC_DEST
又没有设定ORACLE_BASE
, 那么日志的位置为:$ORACLE_HOME/log
- 还可以直接通过查询
oracle 11g环境下可以直接通过查询bdump参数,来找到alert日志位置: SQL> show parameter background_dump_dest; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ background_dump_dest string /u01/app/oracle/product/11.2.0/db_1/rdbms/log
举个例子:
假设为单实例环境
ORACLE_BASE=/u01/app/oracle;
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;
ORACLE_SID=orcl
那么数据库alert日志的位置在: /u01/app/oracle/diag/rdbms/orcl/orcl/alertORCL.log
假设为RAC环境
ORACLE_BASE=/u01/app/oracle;
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;
ORACLE_SID=orcl1
那么
实例1的数据库alert日志的位置在: /u01/app/oracle/diag/rdbms/orcl/orcl1/alertORCL1.log
实例2的数据库alert日志的位置在: /u01/app/oracle/diag/rdbms/orcl/orcl2/alertORCL2.log
10g版本:
10g相对简单,alert的位置在:$ORACLE_BASE/admin/$ORACLE_SID/bdump
12c
12c与11g类似,但日志并不在bdump目录
下,可以通过v$diag_info视图查询
SQL> show parameter dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string /u01/app/oracle/product/12.2.0
/db_1/rdbms/log
core_dump_dest string /u01/app/oracle/diag/rdbms/orc
l/racdb11/cdump
max_dump_file_size string unlimited
shadow_core_dump string partial
user_dump_dest string /u01/app/oracle/product/12.2.0
======================说明==========================
adump:审计信息
bdump:后台进程trace和alert log,就是说alert_sid.log日志也存在此处
cdump:core trace,一般是用来日志应用程序的 除非数据库出了问题 否则基本上不会有什么信息
dpdump :是存放一些登录信息的
pfile :初始化参数文件 initSID
udump :user dump,前台手动trace的 比如sql trace之后session的trace文件