When Oracle Net server tracing is invoked using sqlnet.ora (see example below) tracing on the affected server processes will continue throughout the process lifetime. If tracing needs to be stopped without stopping the server process the following method can be used.
Example: static server tracing using sqlnet.ora
trace_level_server = 16 trace_directory_server = /tmp diag_adr_enabled = off
Use dynamic server tracing to disable tracing without stopping the server process.
The Steps
1. Identify the PID, or for Windows the thread ID, of the server process that is actively tracing.
Server traces are created with the process ID in the filename so this is easily done. The trace files below are being generated by server process id’s 19213,19364, and 19367.
[host admin]$ ls -al *.trc -rw-rw---- 1 user user 192670 Jan 16 15:06 svr_19213.trc -rw-rw---- 1 user user 80897 Jan 16 15:43 svr_19364.trc -rw-rw---- 1 user user 59146 Jan 16 15:43 svr_19367.trc
2. Connect as sysdba and use oradebug to set the PID (or Windows thread ID) of the target server process identified in step 1.
[host admin]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Fri Jan 16 15:06:22 2015 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> oradebug setospid 19213 Oracle pid: 19, Unix process pid: 19213, image: host SQL>
3. Once the PID or thread ID has been set in oradebug tracing can be disabled dynamically.
For Oracle versions 11.2.0.3 and lesser use:
oradebug dump event_tsm_test 0
For Oracle versions 11.2.0.4 and greater use:
oradebug dump sqlnet_server_trace 0
11.2.0.4 example:
SQL> oradebug dump sqlnet_server_trace 0 Statement processed. SQL>
Tracing will stop immediately after issuing the command while the server process will continue to run.