在Oracle 11g中引入了自动诊断信息库(ADR),它提供了一个统一而且一致的机制来存储、格式化并定位所有的数据库诊断信息(易于使用的文件结构)。ADR关联各种组件(比如Oracle RAC、Oracle Clusterware、OCI、Net、进程等)的错误,并自动为严重的错误生成事故和提供事故管理功能。因此,ADR可以显著减少解决事故和问题的时间。
通常在使用传统的初始化参数的时候,比如BACKGROUND_DUMP_DEST、CORE_DUMP_ DEST和USER_DUMP_DEST等,如果想让清理文件的过程自动进行,就必须使用自定义过程去手动清理。用ADR和ADR的命令行界面(ADRCI),您可以设置控制这些文件保存时间的策略:
- adrci> set control (SHORTP_POLICY = 360 )
- adrci> set control (LONGP_POLICY = 4380 )
使用ADR时,传统的CORE_DUMP_DEST、BACKGROUND_DUMP_DEST和USER_DUMP_DEST位置改变为DIAGNOSTIC_DEST。因此,如果指定了参数DIAGNOSTIC_DEST,由原来的参数设置的位置将被忽略。
使用ADR时的位置变化如下:
原始位置新位置
CORE_DUMP_DESTDIAGNOSTIC_DEST/diag/rdbms/
BACKGROUND_DUMP_DEST
(Alert Log text)
(Alert Log XML)DIAGNOSTIC_DEST/diag/rdbms/
DIAGNOSTIC_DEST/diag/rdbms/
BACKGROUND_DUMP_DESTDIAGNOSTIC_DEST/diag/rdbms/
USER_DUMP_DESTDIAGNOSTIC_DEST/diag/rdbms/
如下是ADR文件位置的缩略列表:
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/trace
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/alert
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/cdump
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/incident
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/hm
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/incpkg
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/ir
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/lck
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/metadata
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/sweep
- DIAGNOSTIC_DEST/diag/rdbms/<DBNAME>/<INSTANCENAME>/stage
在默认情况下,DIAGNOSTIC_DEST 的位置是 $ORACLE_HOME/log
然而,如果在环境变量中设置了ORACLE_BASE,那么DIAGNOSTIC_DEST就会被设置为$ORACLE_BASE。