今天客户反映说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