如何对oracle 数据泵内部操作进行跟踪

目录

1.创建跟踪DM,DW的触发器

2.执行数据泵导出导入并启用跟踪:

3. 在trace文件目录检查DW,DM的文件

4、使用TKPROF 工具分析trace文件.

5、分析文件

6、最后可以删除这个触发器


相信大家遇到过数据泵导出HANG住,或者导出慢的问题,但遇到这个问题后,想找出问题的原因,到底卡在哪里?该怎么办?

解决办法很多,下面提供一个方法,使用触发器的方式来分析数据泵的执行过程:

1.创建跟踪DM,DW的触发器

   CREATE OR REPLACE TRIGGER sys.set_dp_trace
AFTER LOGON ON DATABASE
DECLARE

  v_program v$session.program%TYPE;
  v_dyn_sql VARCHAR2(100);

BEGIN
  SELECT    substr (program, -5, 2)
  INTO   v_program
  FROM   v$session
  WHERE  sid = (SELECT DISTINCT sid FROM v$mystat);

  IF v_program = 'DW' or v_program= 'DM' THEN

    EXECUTE IMMEDIATE 'alter session set tracefile_identifier = '||'DPTRC';
    EXECUTE IMMEDIATE 'alter session set statistics_level=ALL';
    EXECUTE IMMEDIATE 'alter session set max_dump_file_size=UNLIMITED';
    EXECUTE IMMEDIATE 'alter session set events ''10046 trace name context forever, level 12''';

  END IF;
END;
/

2.执行数据泵导出导入并启用跟踪:



expdp/impdp ...  METRICS=Y TRACE=480300

比如:

Other possible values of TRACE parameter:
Trace   DM   DW  ORA  Lines
  level  trc  trc  trc     in
  (hex) file file file  trace                                         Purpose
------- ---- ---- ---- ------ -----------------------------------------------
  10300    x    x    x  SHDW: To trace the Shadow process (API) (expdp/impdp)
  20300    x    x    x  KUPV: To trace Fixed table
  40300    x    x    x  'div' To trace Process services
  80300    x            KUPM: To trace Master Control Process (MCP)      (DM)
100300    x    x       KUPF: To trace File Manager
200300    x    x    x  KUPC: To trace Queue services
400300         x       KUPW: To trace Worker process(es)                (DW)
800300         x       KUPD: To trace Data Package
1000300         x       META: To trace Metadata Package
------- 'Bit AND'
1FF0300    x    x    x  'all' To trace all components          (full tracing)         

--常用跟踪值:
--TRACE=1FF0300  全组件跟踪T
--RACE=480300 核心组件跟踪(推荐用于调试)
--TRACE=10300 - 仅 Shadow process 跟踪

3. 在trace文件目录检查DW,DM的文件

   位置:USER_DUMP_DEST or DIAGNOSTIC_DEST/diag/rdbms/<dbname>/<sid>/trace. 
   

4、使用TKPROF 工具分析trace文件.


     tkprof <SID>_dw01_2122_DPTRC.trc  <FILESYSTEM_PATH>/<SID>_dw01_2122_DPTRC.out waits=yes sort=exeela      

     如:

     tkprof orclcdb_dw00_5344_DPTRC.trc 5344.log waits=yes sort=exeela


5、分析文件

     more 5344.log

     

6、最后可以删除这个触发器


     SQL> DROP TRIGGER SYS.SET_DP_TRACE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值