对于这些问题,MOS上提供了如下3种诊断方法(只演示第三种):
方法一
在expdp/imdp命令中添加参数METRICS=Y TRACE=480300 (或者 480301 捕获SQL trace) 并重新运行expdp/impdp
方法二
对DataPump Master (DM) 和 Worker (DW)进程启用level 12的10046 trace
— 版本>= 11g and < 12c
SQL> alter system set events 'sql_trace {process : pname = dw | pname = dm} level=12';
— 版本= 12c
SQL> alter system set events 'sql_trace {process: pname = dw | process: pname = dm} level=12';
然后用参数METRICS = Y加入命令行启动expdp/impdp
方法三:(推荐)
1、查看运行的DataPump 导出进程
connect / as sysdba
set lines 350 pages 400 numwidth 7
col program for a38
col username for a10
col spid for a7
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 (UPPER(s.program) LIKE '%DM0%' or UPPER(s.program) LIKE '%DW0%');
2、跟踪已经开始运行的DataPump 导出进程
–确认Data Pump Worker SID 和 SERIAL#(例如. 对于 DM 和DW 进程), 以level 12跟踪 Master/Worker 进程 (bind和wait信息):
SQL> exec sys.dbms_system.set_ev (SID, SERIAL#, 10046, 12, '');