如何在SPFILE中设置EVENTS

今天客户反映说udump下生成很多TRACE文件,导致系统空间不足。他们自己检查发现系统设置了event

SQL> show parameter event

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
event                                string      10203 trace name context forever

客户询问该怎么关闭trace。刚好借这个机会翻译一下metalink上的文章:How To Set EVENTS In The SPFILE (文档 ID 160178.1)

1、文本参数文件设置语法如下:

event="10325 trace name context forever, level 10"
event="10015 trace name context forever, level 1"

在这些行中间插入其他参数,仅仅最后一个是有效的

2a、通过spfile设置的语法如下:

      SQL> ALTER SYSTEM SET
           EVENT='10325 trace name context forever, level 10',
           '10015 trace name context forever, level 1'
           COMMENT='Debug tracing of control and rollback' SCOPE=SPFILE;  
      System altered.

也可以通过如下方法来设置:

SQL> alter system set event='10325 trace name context forever, level 10:10015 trace name context forever, level 1' scope=spfile;

上述设置必须重启instance来使参数生效。

 2b、实例必须已spfile启动,否则alter命令将报错

      SQL> ALTER SYSTEM SET
           EVENT='10325 trace name context forever, level 10',
           '10015 trace name context forever, level 1'
           COMMENT='Debug tracing of control and rollback' SCOPE=SPFILE;

      ALTER SYSTEM SET
      *
      ERROR at line 1:
      ORA-32001: write to SPFILE requested but no SPFILE specified at startup

 

2c、不可按如下方式设置

SQL> ALTER SYSTEM SET
           EVENT='10325 trace name context forever, level 10',
           '10015 trace name context forever, level 1'
           COMMENT='Debug tracing of control and rollback' SCOPE=BOTH;
      EVENT='10325 trace name context forever,
      *
      ERROR at line 2:
      ORA-02095: specified initialization parameter cannot be modified

如果遇到上述错误,需要使用SCOPE=SPFILE,并重启数据库。

2d、上述设置可以在nomount状态下进行,无需mount或者open数据库

3、如果需要增加或删除events,需要完整的输入ALTER SYSTEM命令,并重启数据库

4、移除所有的events设置

SQL> ALTER SYSTEM RESET EVENT SCOPE=SPFILE SID='*' ;

如果是RAC环境,需要将*替换为具体的实例名。

5、为了dumping或者tracing,一般要使设置的events立即生效

SQL> ALTER SESSION SET EVENTS 'immediate trace name controlf level 2' ;

      System altered.

 

6、配置系统级的triggered事件,可使用如下命令

      SQL> alter system set events '942 trace name ERRORSTACK level 3';

      System altered.

 

7、关闭系统或者session级别的events事件,可使用如下语句

SQL> alter system set events '942 trace name ERRORSTACK off';

System altered

SQL> alter system set events='10325 trace name context off';

System altered

 "SESSION" vs "SYSTEM", "EVENTS" vs "EVENT", 关键字"level"前没有逗号(",") .
 另外, 也可以通过独立的ALTER SESSION命令指定不同的event.

 

关于取消events设置,有一个bug需要注意

bug:2942335:ALTER SYSTEM RESET EVENT SCOPE=SPFILE SID='*' NOT RESETING EVENTS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章