oradebug 简介!

来源:互联网 发布:全国幼儿园名录数据库 编辑:程序博客网 时间:2024/06/02 08:56

1、命令简介

SQL> oradebug helpHELP           [command]                 描述一个或所有的命令SETMYPID                                 Debug current processSETOSPID       <ospid>                   Set OS pid of process to debugSETORAPID      <orapid> ['force']        Set Oracle pid of process to debugSETORAPNAME    <orapname>                Set Oracle process name to debugSHORT_STACK                              Get abridged OS stackCURRENT_SQL                              Get current SQLDUMP           <dump_name> <lvl> [addr]  Invoke named dumpDUMPSGA        [bytes]                   Dump fixed SGADUMPLIST                                 打印可用的转储列表EVENT          <text>                    Set trace event in processSESSION_EVENT  <text>                    Set trace event in sessionDUMPVAR        <p|s|uga> <name> [level]  Print/dump a fixed PGA/SGA/UGA variableDUMPTYPE       <address> <type> <count>  Print/dump an address with type infoSETVAR         <p|s|uga> <name> <value>  Modify a fixed PGA/SGA/UGA variablePEEK           <addr> <len> [level]      Print/Dump memoryPOKE           <addr> <len> <value>      Modify memoryWAKEUP         <orapid>                  Wake up Oracle processSUSPEND                                  暂停执行RESUME                                   继续执行FLUSH                                    Flush pending writes to trace fileCLOSE_TRACE                              关闭跟踪文件TRACEFILE_NAME                           获取跟踪文件路径名LKDEBUG                                  Invoke global enqueue service debuggerNSDBX                                    Invoke CGS name-service debugger-G             <Inst-List | def | all>   Parallel oradebug command prefix-R             <Inst-List | def | all>   Parallel oradebug prefix (return outputSETINST        <instance# .. | all>      Set instance list in double quotesSGATOFILE      <SGA dump dir>         Dump SGA to file; dirname in double quotesDMPCOWSGA      <SGA dump dir> Dump & map SGA as COW; dirname in double quotesMAPCOWSGA      <SGA dump dir>         Map SGA as COW; dirname in double quotesHANGANALYZE    [level] [syslevel]        Analyze system hangFFBEGIN                                  Flash Freeze the InstanceFFDEREGISTER                             FF deregister instance from clusterFFTERMINST                               Call exit and terminate instanceFFRESUMEINST                             Resume the flash frozen instanceFFSTATUS                                 Flash freeze status of instanceSKDSTTPCS      <ifname>  <ofname>        Helps translate PCs to namesWATCH          <address> <len> <self|exist|all|target>  Watch a region of memoryDELETE         <local|global|target> watchpoint <id>    Delete a watchpointSHOW           <local|global|target> watchpoints        Show  watchpointsDIRECT_ACCESS  <set/enable/disable command | select query> Fixed table accessCORE                                     Dump core without crashing processIPC                                      Dump ipc informationUNLIMIT                                  取消跟踪文件的大小限制PROCSTAT                                 Dump process statisticsCALL           [-t count] <func> [arg1]...[argn]  Invoke function with arguments

2、简单使用

查询一个用户的id信息:

SQL> select sid from v$mystat where rownum = 1;       SID----------        43SQL> select PADDR from v$session where sid = 43;PADDR--------2E3CC354SQL> select PID,SPID from v$process where ADDR = '2E3CC354';       PID SPID---------- ------------------------        33 6852SQL> show userUSER 为 "U1"
设定追踪:

SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)
或者
SQL> oradebug setorapid 33Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)
可以使用dumplist把所有可以的dump内容出来:

SQL> oradebug dumplistTRACE_BUFFER_ONTRACE_BUFFER_OFFLATCHESPROCESSSTATESYSTEMSTATEINSTANTIATIONSTATEREFRESH_OS_STATSCROSSICCONTEXTAREAHANGDIAG_HEADERHEAPDUMPHEAPDUMP_ADDRPOKE_ADDRESSPOKE_LENGTHPOKE_VALUEPOKE_VALUE0GLOBAL_AREAREALFREEDUMPFLUSH_JAVA_POOLPOOL_SIMULATORPGA_DETAIL_GETPGA_DETAIL_DUMPPGA_DETAIL_CANCELPGA_SUMMARYMODIFIED_PARAMETERSEVENT_TSM_TESTERRORSTACKCALLSTACKTEST_STACK_DUMPTEST_GET_CALLERRECORD_CALLSTACKEXCEPTION_DUMPBG_MESSAGESENQUEUESKSTDUMPCURPROCKSTDUMPALLPROCSKSTDUMPALLPROCS_CLUSTERSIMULATE_EOVKSFQP_LIMITKSKDUMPTRACEDBSCHEDULERLDAP_USER_DUMPLDAP_KERNEL_DUMPDUMP_ALL_OBJSTATSDUMPGLOBALDATAHANGANALYZEHANGANALYZE_PROCHANGANALYZE_GLOBALGES_STATEOCRCSSCRSSYSTEMSTATE_GLOBALGIPCMMAN_ALLOC_MEMORYMMAN_CREATE_DEF_REQUESTMMAN_CREATE_IMM_REQUESTMMAN_IMM_REQUESTDUMP_ALL_COMP_GRANULE_ADDRSDUMP_ALL_COMP_GRANULESDUMP_ALL_REQSDUMP_TRANSFER_OPSDUMP_ADV_SNAPSHOTSADJUST_SCNNEXT_SCN_WRAPCONTROLFFLUSH_CACHEFULL_DUMPSBUFFERSRECOVERYSET_TSN_P1BUFFERPIN_BLOCKSBC_SANITY_CHECKPIN_RANDOM_BLOCKSSET_NBLOCKSCHECK_ROREUSE_SANITYDUMP_PINNED_BUFFER_HISTORYKCBO_OBJ_CHECK_DUMPKCB_WORKING_SET_DUMPREDOLOGSARCHIVE_ERRORLOGHISTREDOHDRLOGERROROPEN_FILESDATA_ERR_ONDATA_READ_ERR_ONDATA_ERR_OFFBLK0_FMTCHGUPDATE_BLOCK0_FORMATTR_SET_BLOCKTR_SET_ALL_BLOCKSTR_SET_SIDETR_CRASH_AFTER_WRITETR_READ_ONE_SIDETR_CORRUPT_ONE_SIDETR_RESET_NORMALTEST_DB_ROBUSTNESSLOCKSGC_ELEMENTSFILE_HDRSKRB_CORRUPT_INTERVALKRB_CORRUPT_SIZEKRB_CORRUPT_REPEATKRB_CORRUPT_OFFSETKRB_PIECE_FAILKRB_OPTIONSKRB_FAIL_INPUT_FILENOKRB_SIMULATE_NODE_AFFINITYKRB_TRACEKRB_BSET_DAYSKRB_SET_TIME_SWITCHKRB_OVERWRITE_ACTIONKRB_CORRUPT_SPHEADER_INTERVALKRB_CORRUPT_SPHEADER_REPEATKRB_CORRUPT_SPBITMAP_INTERVALKRB_CORRUPT_SPBITMAP_REPEATKRB_CORRUPT_SPBAD_INTERVALKRB_CORRUPT_SPBAD_REPEATKRB_UNUSED_OPTIONKRBMRSR_LIMITKRBMROR_LIMITKRBABR_TRACEKRDRSBFKRC_TRACEKRA_OPTIONSKRA_TRACEFBTAILFBINCFBHDRFLASHBACK_GENKTPR_DEBUGDUMP_TEMPDROP_SEGMENTSTEST_SPACEBGTREEDUMPLONGF_CREATEKDLIDMPROW_CACHELIBRARY_CACHELIBRARY_CACHE_OBJECTCURSORDUMPCURSORTRACECURSOR_STATSXS_SESSION_STATESHARED_SERVER_STATELISTENER_REGISTRATIONJAVAINFOKXFPCLEARSTATSKXFPDUMPTRACEKXFPBLATCHTESTKXFXSLAVESTATEKXFXCURSORSTATEKXFRHASHMAPWORKAREATAB_DUMPKUPPLATCHTESTOBJECT_CACHESAVEPOINTSRULESETDUMPRULESETDUMP_ADDRFAILOVEROLAP_DUMPSELFTESTASMASMDISK_ERR_ONASMDISK_READ_ERR_ONASMDISK_ERR_OFFIOERREMULIOERREMULRNGALRT_TESTAWR_TESTAWR_FLUSH_TABLE_ONAWR_FLUSH_TABLE_OFFASHDUMPMMON_TESTATSK_TESTHM_FW_TRACEHM_FDG_VERSIR_FW_TRACEKSDTRADV_TEST
在这些dump选项中,大部分都有24681012等几个跟踪级别。在使用的时候要根据具体的情况来选择级别,不同级别的影响不一样。

3、获得系统状态

SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)SQL> oradebug flush已处理的语句SQL> oradebug unlimit已处理的语句SQL> oradebug tracefile_name/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_6852.trcSQL> oradebug dump systemstate 10已处理的语句SQL> oradebug close_trace已处理的语句

4、获得某个进程状态

-- 注意,这里必须是Oracle 的进程

SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)SQL> oradebug unlimit已处理的语句SQL> oradebug tracefile_name/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_6852.trcSQL> oradebug dump processstate 10已处理的语句SQL> oradebug close_trace已处理的语句
5、获得进程的错误信息状态
SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)SQL> oradebug unlimit已处理的语句SQL> oradebug tracefile_name/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_6852.trcSQL> oradebug dump errorstack 3已处理的语句SQL> oradebug close_trace已处理的语句
6、利用oradebug追踪10046事件
SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)SQL> oradebug unlimit已处理的语句SQL> oradebug tracefile_name/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_6852.trcSQL> oradebug event 10046 trace name context forever,level 4已处理的语句SQL> oradebug event 10046 trace name context off已处理的语句SQL> oradebug close_trace已处理的语句
7、例如要追踪能造成ORA-0094/952错误的会话

SQL> oradebug event 942 trace name errorstack level 3SQL> oradebug event 952 trace name errorstack level 3
8、暂停、启动进程
SQL> oradebug setospid 6852Oracle pid: 33, Unix process pid: 6852, image: oracle@linux (TNS V1-V3)SQL> oradebug SUSPEND已处理的语句SQL> oradebug RESUME已处理的语句SQL> oradebug close_trace已处理的语句

原创粉丝点击