oradebug是个sql*plus命令行工具,有sysdba的权限就可以登入,用于追踪进程的详细信息并生成trace文件
sqlplus / as sysdba
SQL> oradebug help
expdp很慢,增加metrics和trace参数还是看不出问题,通过10046 level 8获取等待事件,使用oradebug抓取expdp进程的这些详细信息并写入到trace文件
1、timed_statistics必须为true,11.2.0.0开始默认为true
ALTER SYSTEM SET timed_statistics = TRUE SCOPE = memory;
2、 执行一个expdp导出,增加了trace默认会生成一个trace文件
expdp system/123456 directory=DATA_PUMP_DIR dumpfile=dump123 logfile=dump123.log schemas=hr METRICS=Y TRACE=480300
3、查看expdp的dw进程的进程号spid
CONNECT / as sysdba
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "DATE", s.program, s.sid,
s.status, s.username, d.job_name, p.spid, s.serial#, p.pid
from v$session s, v$process p, dba_datapump_sessions d
where p.addr=s.paddr and s.saddr=d.saddr and s.program like '%DW%';
4、假如上面查询结果p.spid为123,10046 trace level 8其中的8表示跟踪等待事件。
oradebug setospid 123
oradebug unlimit
oradebug event 10046 trace name context forever, level 8
oradebug tracefile_name
oradebug event 10046 trace name context off
oradebug文件dump过程的信息
alter system dump logfile '你要dump的日志:可以是redolog也可以是archivelog';
oradebug setmypid
oradebug tracefile_name;
oradebug系统hang住原因分析
oradebug setmypid
oradebug unlimit
oradebug hanganalyze 3
oradebug tracefile_name
获取某进程的状态信息
oradebug setospid 22180
oradebug dump processstate 10
oradebug tracefile_name
---oradebug dump选项的信息
DUMP <dump_name> <lvl>
---查看dump_name
SQL> oradebug dumplist
--lvl,如果为了获取全面一点的信息,可以使用Level 10
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2218757/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30126024/viewspace-2218757/