11g v$process中增加了一个有用的字段tracefile!

[复制链接]
查看11 | 回复5 | 2011-11-16 22:31:22 | 显示全部楼层 |阅读模式
11g,v$process中增加了一个tracefile字段,该字段记录的是进程产生的tracefile,一个看起来不起眼的字段却给我带来了很大的方便,以前我们要确认进程所产生的trace文件需要通过下面方法:
1.首先需要知道当前的sessionid
SQL> select sid from v$mystat where rownum=1;
SID
----------
144
2.之后需要知道该session所对应的process address
SQL> select paddr from v$session where sid=144;
PADDR
--------
22695850
3.根据process address进一步需要知道os process(thread) id
SQL> select spid from v$process where addr='22695850';
SPID
------------------------
3960
4.当然还的需要知道trace file的格式:sid_ora_spid.trc,这里指的是服务器进程所产生的trace file,不包括后台进程,后台进程对应的trace file名格式:sid_(pmon,smon,dbwn,lgwr...)_spid.trc
5.简单的测试一下,以下面的命令生成的trace file为例
SQL> alter database backup controlfile to trace noresetlogs;
数据库已更改。
以前我们不仅需要知道session对应的spid,还得需要知道参数user_dump_dest的值
SQL> show parameter user_dump_dest
NAME
TYPEVALUE
------------------------------------ ----------- ------------------------------
user_dump_dest
stringc:\app\wch\diag\rdbms\orcl\orc

l\trace
SQL> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\>cd c:\app\wch\diag\rdbms\orcl\orcl\trace
--知道了参数user_dump_dest的值之后就可以在该参数指定的目录下来寻找process(thread):spid所产生的trace file:上面的命令(alter database backup controlfile to trace noresetlogs)产生的trace file的确在user_dump_dest指定的目录下找到了。
C:\app\wch\diag\rdbms\orcl\orcl\trace>dir *3960*
驱动器 C 中的卷是 IBM_PRELOAD
卷的序列号是 5059-B9D7
C:\app\wch\diag\rdbms\orcl\orcl\trace 的目录
2008-12-1422:05
4,136 orcl_ora_3960.trc
2008-12-1422:05
122 orcl_ora_3960.trm

2 个文件
4,258 字节

0 个目录3,021,438,976 可用字节
C:\app\wch\diag\rdbms\orcl\orcl\trace>exit
SQL> desc v$process
名称
是否为空? 类型
----------------------------------------- -------- ----------------------------
ADDR
RAW(4)
PID
NUMBER
SPID
VARCHAR2(24)
USERNAME
VARCHAR2(15)
SERIAL#
NUMBER
TERMINAL
VARCHAR2(16)
PROGRAM
VARCHAR2(64)
TRACEID
VARCHAR2(255)
TRACEFILE
VARCHAR2(513)
BACKGROUND
VARCHAR2(1)
LATCHWAIT
VARCHAR2(8)
LATCHSPIN
VARCHAR2(8)
PGA_USED_MEM
NUMBER
PGA_ALLOC_MEM
NUMBER
PGA_FREEABLE_MEM
NUMBER
PGA_MAX_MEM
NUMBER
--上面的查找是那么的"艰辛",再来看看11g的表现是那么的轻松:
SQL> select sid,paddr from v$session where sid=144;
SID PADDR
---------- --------
144 22695850
SQL> select tracefile from v$process where addr='22695850';
TRACEFILE
--------------------------------------------------------------------------------
c:\app\wch\diag\rdbms\orcl\orcl\trace\orcl_ora_3960.trc
SQL>
回复

使用道具 举报

千问 | 2011-11-16 22:31:22 | 显示全部楼层


这个特性确实很方便,
不过以前通过oradebug tracefile_name的方式也很方便
回复

使用道具 举报

千问 | 2011-11-16 22:31:22 | 显示全部楼层
原帖由 cc59 于 2008-12-14 22:54 发表

这个特性确实很方便,
不过以前通过oradebug tracefile_name的方式也很方便




回复

使用道具 举报

千问 | 2011-11-16 22:31:22 | 显示全部楼层
翻出来
回复

使用道具 举报

千问 | 2011-11-16 22:31:22 | 显示全部楼层
这个特性确实很方便,
不过以前通过oradebug tracefile_name的方式也很方便
回复

使用道具 举报

千问 | 2011-11-16 22:31:22 | 显示全部楼层
cc59 发表于 2008-12-14 22:54
这个特性确实很方便,
不过以前通过oradebug tracefile_name的方式也很方便

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行