Oracle:impdp导入等待statement suspended, wait error to be

yanhui00 2017-08-26

用数据泵impdp往开发数据库导数据,但导入到INDEX时感觉卡住不动了

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
----查看状态,Completed Objects: 33一直没有变化。
Import> status
Job: SYS_IMPORT_FULL_01
  Operation: IMPORT                         
  Mode: FULL                           
  State: EXECUTING                     
  Bytes Processed: 843,222,272
  Percent Done: 99
  Current Parallelism: 1
  Job Error Count: 0
  Dump File: /home/Oracle/dump/wj_dev%u.dmp
  Dump File: /home/oracle/dump/wj_dev01.dmp
  Dump File: /home/oracle/dump/wj_dev02.dmp
  Dump File: /home/oracle/dump/wj_dev03.dmp
  Dump File: /home/oracle/dump/wj_dev04.dmp
  Dump File: /home/oracle/dump/wj_dev05.dmp
  Dump File: /home/oracle/dump/wj_dev06.dmp
  Dump File: /home/oracle/dump/wj_dev07.dmp
  Dump File: /home/oracle/dump/wj_dev08.dmp
  Dump File: /home/oracle/dump/wj_dev09.dmp
  Dump File: /home/oracle/dump/wj_dev10.dmp
    
Worker 1 Status:
  Process Name: DW00
  State: EXECUTING                     
  Object Schema: ESOP2TEST
  Object Name: SYS_MSISDNNUMID
  Object Type: SCHEMA_EXPORT/TABLE/INDEX/INDEX
  Completed Objects: 33
  Worker Parallelism: 1

查看导入任务对应的会话做在等待什么

SQL> select * from DBA_DATAPUMP_JOBS;
  
OWNER_NAME JOB_NAME              OPERATION           JOB_MODE          STATE                 DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
---------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------- ----------------- -----------------
SYS    SYS_IMPORT_FULL_01          IMPORT           FULL              EXECUTING              1        2          4
  
SQL> select sid,sql_id,event from v$session where action='SYS_IMPORT_FULL_01';
  
       SID SQL_ID   EVENT
---------- ------------- ----------------------------------------------------------------
       146 bjf05cwcj5s6p wait for unread message on broadcast channel
       295 58rzgvcv6gnjs statement suspended, wait error to be cleared

从上面的查询中可以看到“statement suspended, wait error to be cleared”等待事件,这个是一个不常见的等待事件。

继续查看alert日志,发现如下报错:

statement in resumable session 'SYS.SYS_IMPORT_FULL_01.1' was suspended due to
    ORA-01652: unable to extend temp segment by 128 in tablespace temp

看到上面的报错就能明白为什么导入会卡住不动了,正在导入INDEX,创建索引会使用临时表空间,但临时文件太小又没有设置自动扩展导致创建索引语句HANG住。启用临时文件的自动扩展问题解决:

alter database tempfile '/oradata/dbs/temp01.dbf' autoextend on next 100m;

导入正常:

Import> status
  
Job: SYS_IMPORT_FULL_01
  Operation: IMPORT                         
  Mode: FULL                           
  State: EXECUTING                     
  Bytes Processed: 843,222,272
  Percent Done: 99
  Current Parallelism: 1
  Job Error Count: 0
  Dump File: /home/Oracle/dump/wj_dev%u.dmp
  Dump File: /home/oracle/dump/wj_dev01.dmp
  Dump File: /home/oracle/dump/wj_dev02.dmp
  Dump File: /home/oracle/dump/wj_dev03.dmp
  Dump File: /home/oracle/dump/wj_dev04.dmp
  Dump File: /home/oracle/dump/wj_dev05.dmp
  Dump File: /home/oracle/dump/wj_dev06.dmp
  Dump File: /home/oracle/dump/wj_dev07.dmp
  Dump File: /home/oracle/dump/wj_dev08.dmp
  Dump File: /home/oracle/dump/wj_dev09.dmp
  Dump File: /home/oracle/dump/wj_dev10.dmp
    
Worker 1 Status:
  Process Name: DW00
  State: EXECUTING                     
  Object Schema: SUF3TEST
  Object Name: IDX_ORDER_MEMBER_CHARACTER_ID
  Object Type: SCHEMA_EXPORT/TABLE/INDEX/INDEX
  Completed Objects: 407
  Worker Parallelism: 1

相关推荐