oracle数据库:数据文件_笔记4
3.2跟踪文件(续)
3.2.1请求的跟踪文件
你想要的跟踪文件通常都是因为通过DBMS_MONITOR(在Oracle Database 9i Release 2)及更早版本中则是ALTER_SESSION SET SQL_TRACE =TRUE启用了跟踪的结果,或者是通过10046事件使用扩展的跟踪工具生成的
sys@ORCL>alter session set events '10046 trace name context forever,level 12';
Session altered.
1、文件位置
不论是使用DBMS_MONITOR、SQL_TRACE还是扩展的跟踪工具,Oracle都会在数据库服务器主机的以下两个位置生成一个跟踪文件。
.如果使用专用服务器连接,会在user_dump_dest参数指定的目录中生成跟踪文件
.如果使用共享服务器连接,则在background_dump_dest参数指定的目录中生成跟踪文件
sys@ORCL>show parameter dump_dest
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
background_dump_dest string
/home/oracle/app/oracle/diag/r
dbms/orcl/orcl/trace
core_dump_dest string
/home/oracle/app/oracle/diag/r
dbms/orcl/orcl/cdump
user_dump_dest string
/home/oracle/app/oracle/diag/r
dbms/orcl/orcl/trace
sys@ORCL>select name,value
2 from v$parameter
3 where name like '%dump_dest%';
NAME
----------------------------------------------------------------------------------------------------
VALUE
----------------------------------------------------------------------------------------------------
background_dump_dest
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace
user_dump_dest
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace
core_dump_dest
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/cdump
后台转储(跟踪)目标用于所有“服务器”进程,内核转储目标用于出现严重问题时的“内核转储”,用户转储目标由专用服务器在生成跟踪文件时使用。
在Oracle database 11g中增加了一个新的工具ADR。这个新工具包含一个新的V$视图,V$DIAG_INFO
sys@ORCL>with home
2 as
3 (select value home
4 from v$diag_info
5 where name='ADR Home'
6 )
7 select name,
8 case when value <> home.home
9 then replace(value,home.home,'$home$')
10 else value
11 end value
12 from v$diag_info,home
13 /
NAME
----------------------------------------------------------------------------------------------------
VALUE
----------------------------------------------------------------------------------------------------
Diag Enabled
TRUE
ADR Base
/home/oracle/app/oracle
ADR Home
/home/oracle/app/oracle/diag/rdbms/orcl/orcl
Diag Trace
$home$/trace
Diag Alert
$home$/alert
Diag Incident
$home$/incident
Diag Cdump
$home$/cdump
Health Monitor
$home$/hm
Default Trace File
$home$/trace/orcl_ora_22842.trc
Active Problem Count
1
Active Incident Count
41
11 rows selected.
Oracle Database 11g调整了很多文件的默认存储位置,使它们组织得更好一些,从而能更容易地记录对Oracle的服务请求,其中最重要的行包括下面两项:
.Diag Trace:这是11g中跟踪文件(包括后台和用户转储目标)所在的位置
.Default Trace File:这是当前会话的跟踪文件名。
2、命名约定
11g能方便使用V$DIAG_INFO视图,在该版本之前,实际(假设使用专用服务器模式)需要访问4个视图。
.V$PARAMETER:找到USER_DUMP_DEST指定的跟踪文件位置,找到可能在跟踪文件名中用到的可选的tracefile_identifier
.V$PROCESS:查找进程ID
.V$SESSION:正确地标识其他视图中的会话信息
.V$INSTANCE:得到ORACLE_SID
可以使用DBMS_UTILITY来找到位置,而且通常你“知道”ORACLE_SID,所以从理论上讲只需要访问V$SESSION和V$PROCESS,但是,为了便于使用,这4个视图你可能都想访问。
以下查询可以生成跟踪文件名:
SQL> column trace new_val T
SQL> select c.value || '/' || d.instance_name || '_ora_' ||
2 a.spid || '.trc' ||
3 case when e.value is not null then '_'||e.value end trace
4 from v$process a,v$session b,v$parameter c,v$instance d,v$parameter e
5 where a.addr=b.paddr
6 and b.audsid=userenv('sessionid')
7 and c.name='user_dump_dest'
8 and e.name='tracefile_identifier'
9 /
TRACE
--------------------------------------------------------------------------------
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_23211.trc
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_31619.trc
SQL> !ls &T
ls: /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_31619.trc: No such file or directory
SQL> exec dbms_monitor.session_trace_enable
PL/SQL procedure successfully completed.
SQL> !ls &T
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_31619.trc
这表明,如果文件存在,可以通过名字访问它(假设有权限读取跟踪目录)
一旦启用了跟踪,我们就能看到文件。
3、对跟踪文件加标记
有一种办法可以对跟踪文件“加标记”,这样即使无权访问V$PROCESS和V$SESSION,也能找到跟踪文件。假设你能读取user_dump_dest目录,就可以使用会话参数tracefile_identifier。采用这种方法,可以为跟踪文件名增加一个可以唯一标识的串。
sys@ORCL>conn / as sysdba
Connected.
sys@ORCL>alter session set tracefile_identifier='Look_For_Me';
Session altered.
sys@ORCL>!ls /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/*Look_For_Me*.trc
ls: /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/*Look_For_Me*.trc: No such file or directory
sys@ORCL>exec dbms_monitor.session_trace_enable
PL/SQL procedure successfully completed.
[oracle@vcenteroracle ~]$ cd /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace
[oracle@vcenteroracle trace]$ ls
cdmp_20130901071406 cdmp_20130901071412 orcl_mmon_7286.trm
cdmp_20130901071408 cdmp_20130901071413 orcl_ora_31550_Look_For_Me.trc
cdmp_20130901071409 orcl_mmon_7286.trc orcl_ora_31550_Look_For_Me.trm
http://space.itpub.net/519536/viewspace-559786
【11g】v$diag_info视图获得控制文件转储文件名及位置
http://www.52ij.com/jishu/5148.htmloracle数据库:数据文件_笔记3
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5149.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
