ITPub博客

首页 > 数据库 > Oracle > oradebug的使用说明

oradebug的使用说明

原创 Oracle 作者:lusklusklusk 时间:2018-11-05 15:27:43 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。11G OCM, 5年以上DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    334663