如何在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

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