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';

or alternatively:

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 ***