oracle 10g的跟踪文件

今天在学习oracle9i/10g编程艺术--深入数据库体系结构时。学习到了跟踪文件一节。
一:得到跟踪文件名称----跟踪文件名称为:路径+ora_sid_pid.trc
其中路径的值为:udump路径,对应参数:user_dump_dest; 使用语句show parameter user_dump_dest可以得到
SID表示oracle数据库的SID
PID:表示当前连接对应的oracle server process进程在linux上面的进程号

在本书中提到可以使用代码来得到跟踪文件的名称
sqlplus>select  c.value || '/' || d.instance_name ||
2  '_ora_' || a.spid ||  '.trc' trace
3  from  v$process a, v$session  b, v$parameter c, v$instance  d
4  where a.addr  = b.paddr
5  and b.audsid = userenv('sessionid')
6  and c.name =  'user_dump_dest'
7  /
发现其使用了函数userenv('sessionid'),对此的audsid不是很理解。
实验验证:
实验环境:服务器端:linux Redhat 5+Oracle10g 64bit
客户端:PL/SQL develop

发现如果使用sys用户来连接oracle10g时。在pl/sql中同时打开一个sql windows,一个command windows
发现。多个session的audsid是相同的。但是对应的process id不同
 SQL> select saddr,sid,serial#,audsid,paddr,user#,username from v$session;
 
SADDR                        SID    SERIAL#     AUDSID        PADDR                 USER#   USERNAME
---------------- ---------- ---------- ---------- ---------------- ---------- ------------------------------
00000000EE27A8E8       145      14959     4294967295    00000000F11CD448          0   SYS
00000000F124A948        146      13105     4294967295    00000000F11CE418          0   SYS
00000000EE27BD20       147       4227          0                00000000F11CCC60         0  
00000000EE27D158        149          1            0                00000000F11CDC30         0
00000000F124E5F0        152          4            0                 00000000EE1F6978          0
00000000EE280E00        155          1            0                 00000000EE1F6190          0
00000000F1252298         158      11063      4294967295    00000000EE1F7160          0  SYS

而当切换登录帐号为普通用户时,得到的结果显示不同的session使用不同的audsid
SQL> select saddr,sid,serial#,audsid,paddr,user#,username from v$session;
 
SADDR                          SID    SERIAL#      AUDSID             PADDR                 USER#     USERNAME
---------------- ---------- ---------- ---------- ---------------- ---------- ------------------------------
00000000EE27A8E8       145      14959        4294967295    00000000F11CD448          0           SYS
00000000F124A948        146      13099              0              00000000F11CE418          0
00000000EE27D158       149          1                 0               00000000F11CDC30          0
00000000F124E5F0        152          4                 0               00000000EE1F6978          0
00000000EE280E00       155          1                  0               00000000EE1F6190          0
00000000F1252298        158      11061           14273            00000000EE1F7160         63          HARVEY
00000000EE283670       159       3789            14275            00000000F11CCC60         63         HARVEY

所以使用audsid来确认session对应的paddr是不完全正确的。正确的还是应该采用egyle所著的深入解析oracle一书中的方法
1:确认session的sid----select * from v$mystat where statistic#=0;
2:根据session的sid得到paddr  select paddr from v$session where sid= XX
3:根据第二部得到的paddr确认process的PID, select spid from v$porcess where addr = @paddr

有兴趣的朋友可以自己写一个得到跟踪文件名的语句。或者参考egyle的深入解析oracle一书

二: 对跟踪文件加标记
其实除了以上的方法得到文件名外。还有更简单的方法。直接给跟踪文件夹标识
修改参数tracefile_identifier 语句如下:
sys@SALES>alter session set tracefile_identifier = 'Look_For_Me';

Session altered.

sys@SALES>alter session set sql_trace=true;

Session altered.

sys@SALES>!ls $ORACLE_BASE/admin/sales/udump/*Look_For_Me*
/u1/app/oracle/admin/sales/udump/sales_ora_25114_Look_For_Me.tr

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/180324/viewspace-661977/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/180324/viewspace-661977/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值