Tuesday, June 1, 2010

Hang Analyze and System State Dumps.

Oracle support request hang analysis and system state dumps when rasing SR.

One 10.1 or higher versions login as
sqlplus -prelim / as sysdba
To do a hanganalyze
oradebug setmypid;
oradebug unlimit;
oradebug hanganalyze 3
Wait 60 - 90 seconds and run the last command again to identify the process state changes.

To get a systemstate dump

oradebug setmypid;
oradebug unlimit;
oradebug dump systemstate 266
Wait 60 - 90 seconds and run again to identify the system state changes.
If it is taking too long then cancel and run with level 258.
One a cluster environment use
oradebug -g all hanganalyze 3
for hang analyze and
oradebug -g all dump systemstate 266
for system state dumps.

In a cluster verify *diag* (admin/tbxdb/bdump/tbxdb1_diag_21606.trc) file is updated with information on each node.
more on metalink notes 452358.1 and 175006.1



On 19.5 with preliminary connection the unlimit command fails.
SQL> oradebug unlimit;
ORA-02096: specified initialization parameter is not modifiable with this option
MOS Doc 2506099.1 suggest using max_dump_file_size but that also fails with preliminary connection.
 sqlplus -prelim "/ as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 20 09:14:48 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL>  oradebug setmypid;
Statement processed.
SQL> alter session set max_dump_file_size=unlimited;
alter session set max_dump_file_size=unlimited
*
ERROR at line 1:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0
A workaround is to use an existing process ID with "oradebug setospid {SMON or PMON PID}" as explained in 452358.1.