| GENERAL |
| Background Processes List |
SELECT b.name, p.pid FROM gv$bgprocess b, gv$process p WHERE b.paddr = p.addr ORDER BY 1; |
| Dispatcher Processes List |
SELECT d.name, p.pid FROM gv$dispatcher d, gv$process p WHERE d.paddr = p.addr; |
| Job Queue Process List |
SELECT s.paddr, s.sid, j.job FROM gv$session s, dba_jobs_running j WHERE s.sid = j.sid;
SELECT pid FROM gv$process WHERE addr = '17'; |
| Parallel Execution Slave Processes List |
SELECT pid, server_name, status FROM gv$px_process; |
| Shared Server Processes List |
SELECT s.name, p.pid FROM gv$shared_server s, gv$process p WHERE s.paddr = p.addr; |
| SGA Variables List |
SELECT ksmfsnam FROM x$ksmfsv WHERE ksmfsnam LIKE '%\_' ESCAPE '\'; |
| Switches |
| Switch |
Format |
Description |
| -G |
<Inst-List | def | all> |
Parallel oradebug command prefix |
| -R |
<Inst-List | def | all> |
Parallel oradebug prefix return output |
|
| |
| CALL |
| Invoke function with arguments |
oradebug call <func> [arg1] ... [argn] |
| SQL> oradebug call ? |
| |
| CLOSE_TRACE |
| Close trace file |
oradebug close_trace |
| SQL> oradebug close_trace |
| |
| CORE |
| Dump core without crashing process |
oradebug core |
| SQL> oradebug core |
| |
| CURRENT_SQL |
Get current SQL |
oradebug current_sql |
| SYS |
UWCLASS |
| conn / as sysdba |
conn uwclass/uwclass |
GRANT execute ON dbms_support TO uwclass; |
|
| |
SELECT pid FROM gv$process WHERE addr = ( SELECT paddr FROM gv$session WHERE sid = sys.dbms_support.mysid); |
| oradebug setorapid 26 |
|
| |
SELECT t.tablespace_name FROM all_tables t, all_indexes i WHERE t.tablespace_name = i.tablespace_name; |
| oradebug core |
|
|
| |
| DELETE |
| Delete a watchpoint |
oradebug delete <local|global|target> watchpoint <id> |
| SQL> oradebug delete ? |
| |
| DIRECT_ACCESS |
| Fixed table access |
oradebug direct_access <set/enable/disable command | select query> |
| TBD |
| |
| DMPCOWSGA |
| Dump & map SGA as COW |
oradebug dmpcowsga <SGA dump dir> |
| SQL> oradebug dmpcowsga "c: emp" |
| |
| DUMP |
| Invoke named dump |
oradebug dump <dump_name> <lvl> [addr] |
-- dump_name values can be obtained from oradebug dumplist
SQL> oradebug setmypid SQL> oradebug dump library_cache 4 |
| Invoke ASH dump |
SQL> oradebug setmypid SQL> oradebug dump ashdump 10 |
| |
| DUMPLIST |
Print a list of available dumps |
oradebug dumplist |
SQL> oradebug dumplist
|
Available Dumps
|
| ADJUST_SCN |
HANGDIAG_HEADER |
MMAN_ALLOC_MEMORY |
| ALRT_TEST |
HEAPDUMP |
MMAN_CREATE_DEF_REQUEST |
| ARCHIVE_ERROR |
HEAPDUMP_ADDR |
MMAN_CREATE_IMM_REQUEST |
| ASHDUMP |
HM_FW_TRACE |
MMAN_IMM_REQUEST |
| ATSK_TEST |
INSTANTIATIONSTATE |
MMON_TEST |
| AWR_FLUSH_TABLE_OFF |
IOERREMUL |
MODIFIED_PARAMETERS |
| AWR_FLUSH_TABLE_ON |
IOERREMULRNG |
NEXT_SCN_WRAP |
| AWR_TEST |
IR_FW_TRACE |
OBJECT_CACHE |
| BC_SANITY_CHECK |
JAVAINFO |
OCR |
| BG_MESSAGES |
KCBO_OBJ_CHECK_DUMP |
OLAP_DUMP |
| BLK0_FMTCHG |
KDLIDMP |
OPEN_FILES |
| BUFFER |
KRA_OPTIONS |
PGA_DETAIL_CANCEL |
| BUFFERS |
KRA_TRACE |
PGA_DETAIL_DUMP |
| CALLSTACK |
KRB_BSET_DAYS |
PGA_DETAIL_GET |
| CHECK_ROREUSE_SANITY |
KRB_CORRUPT_INTERVAL |
PIN_BLOCKS |
| CONTEXTAREA |
KRB_CORRUPT_REPEAT |
PIN_RANDOM_BLOCKS |
| CONTROLF |
KRB_CORRUPT_SIZE |
POKE_ADDRESS |
| CROSSIC |
KRB_CORRUPT_SPBAD_INTERVAL |
POKE_LENGTH |
| CRS |
KRB_CORRUPT_SPBAD_REPEAT |
POKE_VALUE |
| CSS |
KRB_CORRUPT_SPBITMAP_INTER |
POKE_VALUE0 |
| CURSOR_STATS |
KRB_CORRUPT_SPBITMAP_REPEA |
POOL_SIMULATOR |
| CURSORDUMP |
KRB_CORRUPT_SPHEADER_INTER |
PROCESSSTATE |
| CURSORTRACE |
KRB_CORRUPT_SPHEADER_REPEA |
REALFREEDUMP |
| DATA_ERR_OFF |
KRB_FAIL_INPUT_FILENO |
RECORD_CALLSTACK |
| DATA_ERR_ON |
KRB_OPTIONS |
RECOVERY |
| DBSCHEDULER |
KRB_OVERWRITE_ACTION |
REDOHDR |
| DROP_SEGMENTS |
KRB_PIECE_FAIL |
REDOLOGS |
| DUMP_ADV_SNAPSHOTS |
KRB_SET_TIME_SWITCH |
REFRESH_OS_STATS |
| DUMP_ALL_COMP_GRANULES |
KRB_SIMULATE_NODE_AFFINITY |
ROW_CACHE |
| DUMP_ALL_COMP_GRANULE_ADDR |
KRB_TRACE |
RULESETDUMP |
| DUMP_ALL_OBJSTATS |
KRB_UNUSED_OPTION |
RULESETDUMP_ADDR |
| DUMP_ALL_REQS |
KRBMRSR_LIMIT |
SAVEPOINTS |
| DUMP_PINNED_BUFFER_HISTORY |
KRBMROR_LIMIT |
SELFTESTASM |
| DUMP_TEMP |
KRC_TRACE |
SET_NBLOCKS |
| DUMP_TRANSFER_OPS |
KSDTRADV_TEST |
SET_TSN_P1 |
| DUMPGLOBALDATA |
KSFQP_LIMIT |
SHARED_SERVER_STATE |
| ENQUEUES |
KSKDUMPTRACE |
SIMULATE_EOV |
| ERRORSTACK |
KTPR_DEBUG |
SYSTEMSTATE |
| EVENT_TSM_TEST |
KSTDUMPALLPROCS |
SYSTEMSTATE_GLOBAL |
| EXCEPTION_DUMP |
KSTDUMPALLPROCS_CLUSTER |
TEST_DB_ROBUSTNESS |
| FAILOVER |
KSTDUMPCURPROC |
TEST_GET_CALLER |
| FBHDR |
KUPPLATCHTEST |
TEST_SPACEBG |
| FBINC |
KXFPCLEARSTATS |
TEST_STACK_DUMP |
| FBTAIL |
KXFPDUMPTRACE |
TR_CRASH_AFTER_WRITE |
| FILE_HDRS |
KXFPBLATCHTEST |
TR_CORRUPT_ONE_SIDE |
| FLASHBACK_GEN |
KXFXCURSORSTATE |
TR_READ_ONE_SIDE |
| FLUSH_CACHE |
KXFXSLAVESTATE |
TR_SET_ALL_BLOCKS |
| FLUSH_JAVA_POOL |
LATCHES |
TR_SET_BLOCK |
| FULL_DUMPS |
LDAP_KERNEL_DUMP |
TR_SET_SIDE |
| GC_ELEMENTS |
LDAP_USER_DUMP |
TRACE_BUFFER_OFF |
| GES_STATE |
LIBRARY_CACHE |
TRACE_BUFFER_ON |
| GLOBAL_AREA |
LOCKS |
TREEDUMP |
| HANGANALYZE |
LOGERROR |
TR_RESET_NORMAL |
| HANGANALYZE_PROC |
LOGHIST |
UPDATE_BLOCK0_FORMAT |
| HANGANALYZE_GLOBAL |
LONGF_CREATE |
WORKAREATAB_DUMP |
|
| |
| DUMPSGA |
| Dump fixed SGA |
oradebug dumpsga
oradebug dumpsga <bytes> |
SQL> oradebug dumpsga c:\oracle\product\admin\orabase\udump\orabase_ora_2120.trc |
| |
| DUMPTYPE |
| Print/dump an address with type info |
oradebug dumptype <address> <type> <count> |
| TBD |
| |
| DUMPVAR |
| Print/dump a fixed PGA/SGA/UGA variable |
oradebug dumpvar <pga|sga|uga> <name> [level] |
SQL> oradebug setmypid SQL> oradebug dumpvar SGA kcbnbh |
| |
| EVENT |
| Set trace event in process |
oradebug EVENT <event> TRACE NAME CONTEXT FOREVER, LEVEL <level> |
SQL> oradebug setmypid
SQL> oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
SQL> oradebug unlimit |
| |
| FFBEGIN |
| Flash Freeze the Instance |
oradebug ffbegin |
| SQL> oradebug ffbegin |
| |
| FFDEREGISTER |
| FF deregister instance from cluster |
oradebug ffderegistger |
| SQL> oradebug ffderegister |
| |
| FFRESUMEINST |
| Resume the flash frozen instance |
oradebug ffresumeinst |
| SQL> oradebug ffresumeinst |
| |
| FFSTATUS |
| Flash freeze status of instance |
oradebug ffstatus |
| SQL> oradebug ffstatus |
| |
| FFTERMINST |
| Call exit and terminate instance |
oradebug ffterminst |
| SQL> oradebug ffterminst |
| |
| FLUSH |
| Flush the current contents of the trace buffer to the trace file use |
oradebug flush |
| SQL> oradebug flush |
| |
| HANGANALYZE |
Analyze system hang for stand-alone |
oradebug hanganalzye [level] [syslevel] |
SQL> oradebug setmypid; SQL> oradebug hanganalyze; SQL> oradebug flush; |
| Analyze system hang for RAC |
SQL> oradebug setmypid; SQL> oradebug -g def hanganalyze 1 SQL> oradebug flush; |
| |
| HELP |
| Describe one or all commands |
oradebug help
oradebug help <command> |
SQL> oradebug help SQL> oradebug help flush |
| |
| LKDEBUG |
| Invoke global enqueue service debugger |
oradebug lkdebug |
| SQL> oradebug lkdebug |
| |
| MAPCOWSGA |
| Map SGA as COW |
oradebug mapcowsga <SGA dump dir> |
| SQL> oradebug mapcowsga "c: emp" |
| |
| NSDBX |
| Invoke CGS name-service debugger |
oradebug nsdbx |
| SQL> oradebug nsdbx |
| |
| PEEK |
| Print/Dump memory |
oradebug peek <addr> <len> [level] |
| SQL> oradebug peek 0x20005F0C 12 |
| |
| POKE |
| Modify memory. Never perform this function on a production database! |
oradebug poke <addr> <len> <value> |
| SQL> oradebug poke 0x20005F0C 4 0x46495845 |
| |
| PROCSTAT |
| Dump process statistics |
oradebug procstat |
SQL> oradebug setmypid
SQL> oradebug procstat |
| |
| RESUME |
| Resume execution |
oradebug resume |
| SQL> oradebug resume |
| |
| SESSION_EVENT |
| Set trace event in session |
oradebug session_event <text> |
| SQL> oradebug session_event 10053 TRACE NAME CONTEXT FOREVER, LEVEL 1 |
| |
| SETINST |
| Set instance list |
oradebug setinst <instance# .. | all> |
| SQL> oradebug setinst "1" |
| |
| SETMYPID |
| Sets the oradebug PID to the current process |
oradebug setmypid |
| SQL> oradebug setmypid |
| |
| SETORAPID |
Set PID of Oracle process to debug |
oradebug setorapid <orapid> ['force'] |
SELECT pid FROM gv$process WHERE addr = ( SELECT paddr FROM gv$session WHERE sid = DBMS_SUPPORT.MYSID);
or
SELECT pid FROM gv$process WHERE addr = ( SELECT paddr FROM gv$session WHERE sid = (SELECT sid FROM gv$mystat WHERE ROWNUM = 1));
/* or one of the processes from the background, dispatcher, job queue, parallel, or shared server process lists */
SQL> oradebug setorapid 19 |
| |
| SETOSPID |
Set OS pid of process to debug
The operating system process ID is the PID on Unix systems and the thread number for Windows systems |
oradebug setospid <ospid> |
| Do not use as it often fails. Use setorapid instead. |
| |
| SETORAPNAME |
| Set Oracle process name to debug |
oradebug setorapname <orapname> |
| TBD |
| |
| SETVAR |
| Modify a fixed PGA/SGA/UGA variable |
oradebug setvar <pga|sga|uga> <name> <value> |
| SQL> oradebug setvar SGA kcfdfk 200 |
| |
| SGATOFILE |
| Dump SGA to file |
oradebug sgatofile <SGA dump dir> |
SQL> oradebug ffbegin SQL> oradebug sgatofile "c: emp" SQL> oradebug ffresumeinst |
| |
| SHORT_STACK |
| Get abridged OS stack |
oradebug short_stack |
| SQL> oradebug short_stack |
| |
| SHOW |
| Show watchpoints |
oradebug show <local|global|target> watchpoint <id> |
| SQL> oradebug show? |
| |
| SKDSTTPCS |
| Helps translate PCs to names |
oradebug skdsttpcs <ifname> <ofname> |
| SQL> oradebug skdsttpcs? |
| |
| SUSPEND |
| Suspends the current process |
oradebug suspend |
| SQL> oradebug suspend |
| |
| TRACEFILE_NAME |
Get trace file name
Will not return a value on Windows systems |
oradebug tracefile_name |
| SQL> oradebug tracefile_name |
| |
| UNLIMIT |
| Unlimit the size of the trace file |
oradebug unlimit |
| SQL> oradebug unlimit |
| |
| WAKEUP |
| Wake up Oracle process |
oradebug wakeup <orapid> |
SELECT pid FROM gv$process WHERE addr = ( SELECT paddr FROM gv$bgprocess WHERE name = 'SMON');
SQL> oradebug wakeup 7 |
| |
| WATCH |
| Watch a region of memory |
oradebug watch <address> <len> <self|exist|all|target> |
| SQL> oradebug watch? |
| |
| Demo |
Taking a heap dump during a large (sorting) query |
-- This example requires two sessions, session 1 logged on SYS AS SYSDBA and session 2 which -- executes the query. In session 2 identify the PID using
SELECT pid FROM gv$process WHERE addr IN ( SELECT paddr FROM gv$session WHERE sid = dbms_support.mysid);
In this example the PID was 12
In session 1 set the Oracle PID using
ORADEBUG SETORAPID 12
In session 2 start the query
SELECT ... FROM t1 ORDER BY ....
In session 1 suspend session 2
ORADEBUG SUSPEND
The query in session 2 will be suspended
In session 1 run the heap dump
ORADEBUG DUMP HEAPDUMP 1
The heapdump will show the memory structures allocated for the sort. At this point further dumps e.g. subheap dumps can be taken.
In session 1 resume session 2
ORADEBUG RESUME
The query in session 2 will resume execution |