alter system set event和set events的區別

一米陽光win發表於2023-02-28

按照Oracle Support的建議設定event的時候發現set event和set events這兩種寫法效果不一樣,防止忘記先記下來,oracle mos文件:How To Set EVENTS In The SPFILE (文件 ID 160178.1)

1.alter system set event :此方法對spfile生效,無法對memory生效

SQL> 
ALTER system 
SET event=
'1461 trace name errorstack level 3';

ALTER system SET event= '1461 trace name errorstack level 3'
                *
ERROR at line 1:
ORA- 02095: specified initialization parameter cannot be modified

SQL> ALTER system SET event= '1461 trace name errorstack level 3' scope=spfile;
System altered.

驗證是否已成功更改:

SQL> 
CREATE pfile=
'/home/oracle/1.ora' 
FROM spfile;

File created.
SQL> !
[oracle@rac01 ~]$ grep event 1 .ora
* .event= '1461 trace name errorstack level 3'

這種方法的話,需要重啟DB。下面Rollback這個引數更改

SQL> 
ALTER system 
SET event=
'1461 trace name errorstack off' scope=spfile;

System altered.
SQL> CREATE pfile= '/home/oracle/2.ora' FROM spfile;
File created.
SQL> !
[oracle@rac01 ~]$ grep event 2 .ora
* .event= '1461 trace name errorstack off'

2.alter system set events:此方法對memory生效,無法對spfile生效

SQL> 
ALTER system 
SET events 
'1461 trace name errorstack level 3'; 

System altered.

驗證:

[oracle@rac01 ~]$ tail -n1 /oracle/admin/strm1/bdump/alert_strm1.log

OS Pid: 9070 executed alter system set events '1461 trace name errorstack level 3'

這個引數更改沒有反應到spfile中

SQL> 
CREATE pfile=
'/home/oracle/3.ora' 
FROM spfile;

File created.
SQL> !
[oracle@rac01 ~]$ grep event 3 .ora
* .event= '1461 trace name errorstack off'

其實這裡的1461是個BUG 6085625,Metalink上可以參照NOTE: 461911.1

另外需要注意的是,RAC環境中用方法2動態設定event的話需要在所有instance設定。不過理解了上面的區別的話這個也就很容易明白了。

注意:設定1461 event無法對已經存在的程式生效,對於設定之後新建立的程式才會有效果。所以,我們還是得重啟DB,讓其對所有程式生效。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31540281/viewspace-2937302/,如需轉載,請註明出處,否則將追究法律責任。

相關文章