Circular Trace Buffers
The following events have been tested successfully in 7.3.4 and were still working in Oracle 9.2.
In Oracle 8.1.6 and above, the default value for the MAX_DUMP_FILE_SIZE is UNLIMITED. In Oracle 8.1.5 and below the default value is 512 database blocks. In either case it can be altered dynamically; however high volume trace may still rapidly fill up a disk.
If only the last few lines of the trace file are required, then a circular trace buffer can be used
Enabling the Trace Buffer
To enable a circular trace buffer use
ALTER SESSION SET EVENTS 'immediate trace name trace_buffer_on level level';
where level is the size of the buffer in bytes e.g.
ALTER SESSION SET EVENTS 'immediate trace name trace_buffer_on level 65536';
creates a 65536 byte circular trace buffer
Note that the following ORADEBUG command is equivalent
ORADEBUG DUMP TRACE_BUFFER_ON level
Dumping the Trace Buffer
The buffer is dumped to the trace file when the ksedmp function is called which is the case when an ORA-600 is signalled
The buffer can be dumped on demand using the command
ALTER SESSION SET EVENTS 'immediate trace name trace_buffer_off';
ORADEBUG DUMP TRACE_BUFFER_OFF 0
Note that a message is included in the trace file if trace has been discared from the trace buffer. For example
Trace output buffer of 65536 bytes wrapped 8 times
Also the following message is written to the end of the trace file when it becomes full
*** Trace file full ***