Dump «something» when a given error (ORA-…) occurs (for example, to trace ORA-00942: 942 trace name errorstack level 3).
Numeric events
Format:
NNNNN trace name context forever, level L
NNNNN and L are numbers.
Multiple events can be separated by a colon:
alter system set event='10325 trace name context forever, level 10:10015 trace name context forever, level 1' scope=spfile;
Named events
Named events have a different format.
alter session set events 'immediate trace name controlf level 2' ;
alter system set events '942 trace name errorstack level 3';
Note the plural events vs the singular event and the missing , before the level.
Setting events
When setting events in the init.ora file, they should be grouped together on subsequent lines, otherwise, only the last event will found will have an effect.
event="ddddd trace name context forever, level …"
event="eeeee trace name context forever, level …"
event="fffff trace name context forever, level …"
Events can also be set with SQL statements.
alter session set events='…';
alter system set events='…';
An alter system… will not affect existing connections.
In addition, events can also for another, specific sessions with a debug tool (oradebug).
Duration of events
Events that are set with conext forever, level … are normally active until the session or instance terminates.
Events can explicitely turned off, however, by replacing forever with off:
alter session set events '… context off';
Remove all events
alter system reset event scope=spfile sid='*' ;
The asterisk (*) does not work for RACs, instead, the instance name is required.
TODO
Oracle uses ksdpec() to check if aspecific event is turned on for tracing (if at least one event is set).
ss_wrtf() seems to be related to writing trace files.