11g数据库在进行IMPDP数据恢复的时候,有时候恢复操作一直卡这不动,这时候可以查询下该恢复会话的等待事件,如果看到等待事件是“wait for unread message on broadcast channel”,通过以下思路解决。
一般造成该问题的原因有两种:出现可能是假死或者导入对象为大对象,造成表象为卡顿的现象。首先观察数据库告警日志,发现告警日志中显示正常,并未提示表空间无法拓展,不足的情况;
针对进程进行分析,检查是否有其他进程阻塞了IMPDP进程;
SQL> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
------------ ------------------------------ ------------ ------------ ----------
SYSTEM NEW1 IMPORT TABLE EXECUTING 4 1 3
SYSTEM SYS_IMPORT_FULL_01 IMPORT FULL NOT RUNNING 0 0 0
执行上述命令后,发现还存在一个未在运行的数据库impdp进程,造成该问题的原因可能是我前期停止了一个impdp进程的关系。
此时查询该JOB涉及的对象:
SQL> SELECT a.object_id, a.object_type, a.owner, a.object_name, a.status
FROM dba_objects a, dba_datapump_jobs j
WHERE a.owner=j.owner_name AND a.object_name=j.job_name
and j.job_name='SYS_IMPORT_FULL_01';
OBJECT_ID OBJECT_TYPE OWNER OBJECT_NAME STATUS
------------ ------------------- -------------------- ---------------------- ---
984119 TABLE SYSTEM SYS_IMPORT_FULL_01 VALID
查询的结果显示:是一个系统在导入时生成的表:
SQL> select owner,object_name,subobject_name, object_type,last_ddl_time from dba_objects where object_id=984119
/
查询最后更改的信息,避免删除错误:
OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_TYPE LAST_DDL_TIME
-------------------- ---------------------------------------- ------------------------------ ------------------- -------------------
SYSTEM SYS_IMPORT_FULL_01 TABLE 13-03-2015 19:59:50
确定问题所在,接下来我们只需要删除IMPDP时产生的表:
SQL> drop table SYSTEM.SYS_IMPORT_FULL_01;
Table dropped.
此时再次检查我们的IMPDP进程发现恢复正常。
SQL> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
------------ ------------------------------ ------------ ------------ ------------------- ------------ ----------------- -----------------
SYSTEM NEW1 IMPORT TABLE EXECUTING 4 1 6
1.数据泵操作是后台作业模式,即使前端结束,后台也会持续的执行。
2.数据泵执行过程中,会产生临时数据记录执行的状态和过程,执行结束后,临时数据会被删除。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28878983/viewspace-2135806/ ,如需转载,请注明出处,否则将追究法律责任。