[20190917]oracle跟踪事件简单写法.txt

来源:这里教程网 时间:2026-03-03 14:12:45 作者:

[20190917]oracle跟踪事件简单写法.txt --//以前我要做10046跟踪,总是记不住命令。总是要把一些常用脚本写入一个文本文件,采用copy and paste的方式操作。 --//文本越来越大,最后发现这样的方式管理不合理,也容易出错。我就开始一点点的建立自己的工作中使用的脚本,其中 --//也包括tanel poder的脚本(虽然我很少用). --//10046on alter session set events '10046 trace name context forever, level &1'; --//10046off.sql alter session set events '10046 trace name context off'; --//我以前老是记不住trace name context forever这一串命令。 --//昨天看http://www.juliandyke.com/Diagnostics/Events/Events.php链接,才发现11g开始支持一种简单的写法、 --//链接http://www.juliandyke.com/Diagnostics/Events/Events.php: In Oracle 11.1 and above a more concise syntax is available: ALTER SYSTEM SET EVENTS '10235'; ALTER SYSTEM SET EVENTS '10235 level 1'; ALTER SYSTEM SET EVENTS '10235 off'; Events can also be enabled at session level using the ALTER SESSION command: ALTER SESSION SET EVENTS '<event> trace name context forever, level <level>'; Events are disabled at session level using: ALTER SESSION SET EVENTS '<event> trace name context off'; In Oracle 11.1 and above a more concise syntax is available: ALTER SESSION SET EVENTS '10235'; ALTER SESSION SET EVENTS '10235 level 1'; ALTER SESSION SET EVENTS '10235 off'; Events can be enabled in other sessions using ORADEBUG To enable an event in a process use: ORADEBUG EVEMT <event> LEVEL <level> For example ORADEBUG EVEMT 10053 LEVEL 1 The default level is 1 so the above can be rewritten as: ORADEBUG EVEMT 10053 To disable trace again: ORADEBUG EVEMT 10053 OFF --//这样写10046跟踪时间就相对简单了。 ALTER session SET EVENTS '10046 level 12'; ... ALTER session SET EVENTS '10046 off'; --//我在windows简单测试基本没有问题。当然并不是全部可以替换,比如你跟踪942 ERRORSTACK,执行如下: ALTER session SET EVENTS '942 level 12'; select * from notexist; ALTER session SET EVENTS '942 off'; alter session set events '942 trace name context forever, level 12'; select * from notexist; alter session set events '942 trace name context off'; --//跟踪文件看到的就是这个表,是看不到执行的sql语句,要看语句要配合10046事件。 --//如果要转储ERRORSTACK,必须这样写: ALTER session SET EVENTS '942 TRACE NAME ERRORSTACK LEVEL 12'; select * from notexist; ALTER session SET EVENTS '942 TRACE NAME ERRORSTACK OFF'; --//不过支持这样简单写法,简单许多也不容易出错。

相关推荐