Oracle 11gR2数据库dump、trace、log文件的变化
Oracle 1gR2数据库的日志体系变化是比较大的,下面我们从参数文件和adr两方面讨论它的变化。
一.参数文件
将spfile转换成pfile可以看出,原有的bdump、adump、cdump、udump的设置只剩下了adump需要设置:
audit_file_dest='e:\app\admin\orcl\adump'
通过show parameter dump命令可以看到其他目录的位置,这个参数必须设定,用于当AUDIT_TRAIL设置为os, xml, 或者 xml,extended的时候存放跟踪文件。不设置该参数会导致系统无法正常的登录。
SQL> show parameter dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string d:\app\diag\rdbms\orcl\orcl\tr
ace
core_dump_dest string d:\app\diag\rdbms\orcl\orcl\cd
ump
max_dump_file_size string unlimited
shadow_core_dump string none
user_dump_dest string d:\app\diag\rdbms\orcl\orcl\tr
ace
bdump、cdump和udump的位置依赖于diagnostic_dest参数的设置,不再需要单独设置。
SQL> show parameter diag
NAME TYPE VALUE
------------------------------------ ----------- ---------------
diagnostic_dest string d:\app
这就是11g中出现的adr(Automatic Diagnostic Repository)自动诊断资料库,自动诊断资料库当然有自动化的一面,这方面的内容不在本文讨论。
二.ADR自动诊断资料库
上图是ADR的标准结构,Oracle数据库的相关产品及组件都符合这个标准的结构,常见的包括:数据库、监听器、客户端、ASM等,由于日志体系被标准化,所以通过统一的工具ADRCI就可以非常方便的管理和查看所有组件的日志。
ADR的根节点是ADR BASE,在实际的工作中我们发现ADR BASE可以有多个,如果你安装有Grid Infrastructure产品,那么Grid和Database分别有自己的ADR BASE,但是通过adrci工具中的set base命令就可以非常容易的切换两个产品的ADR BASE。
除了产品外,同一个产品的不同组件也可以位于不同的ADR BASE,且在配置的时候也是每个组件单独配置。例如,数据库的 diagnostic_dest参数原有的值是e:\app,通过动态的方式将这个参数修改为d:\app,那么相应的数据库的日志文件被立即存放到了d:\app的相应目录结构中。
E:\>adrci
ADRCI: Release 11.2.0.3.0 - Production on 星期日 8月 19 11:52:20 2012
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
ADR base = "d:\app" //登录成功后显示默认的ADRBASE
adrci> show home //显示当前BASE下存在的组件(每个组件有个HOME)
ADR Homes:
diag\rdbms\orcl\orcl //通过数据库初始化参数diagnostic_dest动态修改的,其它组件,例如,监听等并没有一同切换过来
adrci> set base e:\app //切换ADR BASE
adrci> show home //显示该ADR BASE下存在的组件,可以看到监听的日志
ADR Homes:
diag\clients\user_LIUBINGLIN\host_567312731_80
diag\rdbms\orcl\orcl
diag\tnslsnr\LIUBINGLIN-PC\listener
从以上的例子可以看出,监听的ADR BASE的切换跟数据库初始化参数diagnostic_dest没有关联,打开listener.ora配置文件,可以发现adr的设置参数:
ADR_BASE_LISTENER = e:\app
通过修改监听配置文件中的ADR_BASE_LISTENER可以调整监听组件的ADR BASE,调整后重启监听即生效。
--end--