oracle10503事件,【学习笔记】Oracle会话中的Event 3种方法实现查看会话中的event事件...

天萃荷净

分享一篇关于捕捉Oracle会话中的EVENT的3种方法,使用dbms_system、oradebug、setospid/setorapid、.event 10046捕捉EVENT事件的方法

很多时候,我们在数据库中设置了event,如何确认设置的event生效或者如何确认你的库中设置了什么event.下面的文章测试了在11g中比较方便的方法

数据库版本

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE 11.2.0.3.0 Production

TNS for Solaris: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

1.设置测试event

SQL> alter session set events '10510 trace name context forever,level 1';

Session altered.

SQL> alter session set events

2 '10046 trace name context forever,level 4';

Session altered.

SQL> alter system set events '60025 trace name context forever';

System altered.

SQL> alter system set events '10513 trace name context forever,level 2';

System altered.

2.测试spfile参数中是否有event

SQL> create pfile='/tmp/pfile' from spfile;

File created.

solaris*orcl-/home/oracle$ grep -i event /tmp/pfile

--无记录

SQL> show parameter event;

NAME TYPE VALUE

------------------------------------ ----------- -----------------

event string

xml_db_events string enable

证明设置event不会在spfile中记录

3.查询会话event

--dbms_system实现

SQL> set serveroutput on size 1000000

SQL> declare

2 event_level number;

3 begin

4 for i in 1..100000 loop

5 sys.dbms_system.read_ev(i,event_level);

6 if (event_level > 0) then

7 dbms_output.put_line('Event '||to_char(i)||' set at level '||

8 to_char(event_level));

9 end if;

10 end loop;

11 end;

12 /

Event 10510 set at level 1

Event 10513 set at level 2

Event 60025 set at level 1

PL/SQL procedure successfully completed.

--oradebug实现

SQL> oradebug SETMYPID

Statement processed.

SQL> oradebug eventdump session

10510 trace name context forever,level 1

10513 trace name context forever,level 2

60025 trace name context forever

sql_trace level=4

测试证明使用dbms_system可以捕获到event,oradebug可以捕获到本身会话,还可以通过setospid/setorapid来跟踪其他会话的event设置情况.event 10046对应的本质是sql_trace所以使用dbms_system不能捕获到10046

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle会话中的Event 3种方法实现查看会话中的event事件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值