12c 进程跟踪文件异常

12C下进程产生不了跟踪文件的异常,记录一下,大家可以看看。

12.1.0.2下跟踪进程产生不了跟踪文件,这个不是绝对发生,目前测试了几十次,只有一次产生了跟踪文件,这个规律还没去仔细找,MOS上也没发现相关BUG。

11GR2的情况:
创建一个连接,获取到SPID
select sid from v$mystat where rownum<2;

       SID
----------
       156

sys@QDATA>@spid
Enter value for 1: 156

'KILL-9'||SPID
----------------------------------------------------------------
kill -9 24612

跟踪这个进程:

strace -p  24612

getrusage(RUSAGE_SELF, {ru_utime={0, 248962}, ru_stime={0, 225965}, ...}) = 0
times({tms_utime=24, tms_stime=22, tms_cutime=0, tms_cstime=0}) = 438088152
getrusage(RUSAGE_SELF, {ru_utime={0, 248962}, ru_stime={0, 225965}, ...}) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 248962}, ru_stime={0, 225965}, ...}) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 248962}, ru_stime={0, 225965}, ...}) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 249962}, ru_stime={0, 225965}, ...}) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 249962}, ru_stime={0, 225965}, ...}) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 249962}, ru_stime={0, 225965}, ...}) = 0
times({tms_utime=24, tms_stime=22, tms_cutime=0, tms_cstime=0}) = 438088152
由于还没开始执行跟踪,所以没什么有意义的输出。

开启10053跟踪,并且执行一些SQL,查看进程strace的输出

lseek(15, 0, SEEK_CUR)                  = 291837
write(15, "\n*** 2015-09-09 10:03:19.130\n", 29) = 29
write(16, "3?q5x63~0T\n", 11)           = 11
lseek(15, 0, SEEK_CUR)                  = 291866
write(15, "Registered qb: SEL$1 0xd2066938 "..., 40) = 40
write(16, "2?p08kdMam1~0e\n", 15)       = 15
write(15, "\n", 1)                      = 1
lseek(15, 0, SEEK_CUR)                  = 291907
write(15, "---------------------\nQUERY BLOC"..., 66) = 66
write(16, "1Is6c4$qksqbDumpSig*SQL_Costing*"..., 62) = 62
write(15, "  signature (): qb_name=SEL$1 nb"..., 44) = 44
write(15, "\n", 1)                      = 1
write(15, "    fro(0): flg=5 objn=3369 hint"..., 50) = 50
write(15, "\n", 1)                      = 1
lseek(15, 0, SEEK_CUR)                  = 292069
write(15, "\n", 1)                      = 1
write(16, "HI00W1$04g1W11\n", 15)       = 15
write(15, "Registered qb: SEL$2 0xd2062680 "..., 40) = 40
write(15, "\n", 1)                      = 1
lseek(15, 0, SEEK_CUR)                  = 292111
write(15, "---------------------\nQUERY BLOC"..., 66) = 66

上面的输出显示进程一直在向15,16号文件里写入内容

继续查看进程打开了哪些文件
cd   /proc/24612/fd
#ls -l
total 0
lr-x------ 1 root root 64 Sep  9 10:05 0 -> /dev/null
l-wx------ 1 root root 64 Sep  9 10:05 1 -> /dev/null
lr-x------ 1 root root 64 Sep  9 10:05 10 -> /opt/oracle/products/11.2.0/rdbms/mesg/oraus.msb
lrwx------ 1 root root 64 Sep  9 10:05 11 -> socket:[73142061]
l-wx------ 1 root root 64 Sep  9 10:05 12 -> pipe:[73142010]
lrwx------ 1 root root 64 Sep  9 10:05 13 -> socket:[73142062]
lrwx------ 1 root root 64 Sep  9 10:05 14 -> /opt/oracle/admin/qdata/adump/qdata1_ora_24612_20150909100544275796143795.aud
l-wx------ 1 root root 64 Sep  9 10:06 15 -> /opt/oracle/diag/rdbms/qdata/qdata1/trace/qdata1_ora_24612.trc
l-wx------ 1 root root 64 Sep  9 10:06 16 -> /opt/oracle/diag/rdbms/qdata/qdata1/trace/qdata1_ora_24612.trm
l-wx------ 1 root root 64 Sep  9 10:05 2 -> /dev/null
lr-x------ 1 root root 64 Sep  9 10:05 3 -> /dev/null
lrwx------ 1 root root 64 Sep  9 10:05 4 -> socket:[73142058]

上面的输出是软链接,15,16号就是进程打开、写入的trace文件


12C下同样的跟踪过程,产生不了trace文件

sys@QC>conn test/test @10.10.20.31/pdb1
Connected.
test@PDB1>select sid from v$mystat where rownum<2;

       SID
----------
       567

test@PDB1>@spid
Enter value for 1: 567

'KILL-9'||SPID
----------------------------------------------------------------
kill -9 11315

test@PDB1>alter session set events '10053 trace name context forever,level 1';

Session altered.

test@PDB1>select count(*)  from dba_Objects;

  COUNT(*)
----------
     91785

test@PDB1>alter session set events '10053 trace name context off';

Session altered.

上面操作过程中一直用strace观察进程的输出:

#strace -p 11315
Process 11315 attached - interrupt to quit
read(20, "\0\0\1V\6\0\0\0\0\0\21i%\376\377\377\377\377\377\377\377\2\0\0\0\0\0\0\0\3\0\0"..., 8208) = 342
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 13997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 13997}, ...}) = 0
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 13997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
times(NULL)                             = 443485068
times(NULL)                             = 443485068
times(NULL)                             = 443485068
times(NULL)                             = 443485068
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 54991}, ru_stime={0, 14997}, ...}) = 0
mmap(0x7f3d3c7e1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c7e1000
mmap(0x7f3d3c801000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c801000
mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0x1e8000) = 0x7f3d3c621000
mmap(0x7f3d3c621000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c621000
mmap(0x7f3d3c641000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c641000
mmap(0x7f3d3c661000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c661000
mmap(0x7f3d3c681000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c681000
mmap(0x7f3d3c6a1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c6a1000
mmap(0x7f3d3c6c1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c6c1000
mmap(0x7f3d3c6e1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c6e1000
mmap(0x7f3d3c701000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c701000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0x2e8000) = 0x7f3d3c421000
mmap(0x7f3d3c421000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c421000
mmap(0x7f3d3c441000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c441000
mmap(0x7f3d3c461000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c461000
mmap(0x7f3d3c481000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c481000
mmap(0x7f3d3c4a1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c4a1000
mmap(0x7f3d3c4c1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c4c1000
mmap(0x7f3d3c4e1000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c4e1000
mmap(0x7f3d3c501000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c501000
mmap(0x7f3d3c521000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c521000
mmap(0x7f3d3c541000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c541000
mmap(0x7f3d3c561000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3d3c561000
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 118981}, ru_stime={0, 16997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 219966}, ru_stime={0, 16997}, ...}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 222966}, ru_stime={0, 16997}, ...}) = 0

没有产生读写文件的输出

cd  /proc/11315/fd
#ls -l
total 0
lr-x------ 1 root root 64 Sep  9 10:21 0 -> /dev/null
l-wx------ 1 root root 64 Sep  9 10:21 1 -> /dev/null
lrwx------ 1 root root 64 Sep  9 10:21 10 -> socket:[97889794]
lrwx------ 1 root root 64 Sep  9 10:21 11 -> [eventpoll]
l-wx------ 1 root root 64 Sep  9 10:21 2 -> /dev/null
lrwx------ 1 root root 64 Sep  9 10:21 20 -> socket:[97889769]
lr-x------ 1 root root 64 Sep  9 10:21 3 -> /dev/null
lrwx------ 1 root root 64 Sep  9 10:21 4 -> socket:[97889790]
lr-x------ 1 root root 64 Sep  9 10:21 5 -> /proc/11315/fd
lrwx------ 1 root root 64 Sep  9 10:21 6 -> socket:[97889791]
lrwx------ 1 root root 64 Sep  9 10:21 7 -> socket:[97889792]
lr-x------ 1 root root 64 Sep  9 10:21 8 -> /opt/oracle/products/12.1.0/rdbms/mesg/oraus.msb
lrwx------ 1 root root 64 Sep  9 10:21 9 -> socket:[97889793]

也没有任何有关trace文件的软链接,11G以后通过v$process里的 TRACEFILE 都可以看到进程的跟踪文件目录,但是12C里,这个查询虽然有结果,但是真实的文件其实并不存在。

select TRACEFILE from v$process where spid=31740;

/opt/oracle/diag/rdbms/qc/qc_1/trace/qc_1_ora_31740.trc

>more /opt/oracle/diag/rdbms/qc/qc_1/trace/qc_1_ora_31740.trc                                                                                   
/opt/oracle/diag/rdbms/qc/qc_1/trace/qc_1_ora_31740.trc: No such file or directory


沃趣科技高级数据库专家、项目经理
TEL:18652489962
公司网站:http://www.woqutech.com
杭州市滨江区长河街道滨安路11903幢智汇领地科技园AA101004室(310053

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

转载于:http://blog.itpub.net/22034023/viewspace-1795251/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值