Monitor Oracle Data Pump Resumable Waits with DBA_RESUMABLE
Monitor Oracle Data Pump Resumable Waits with DBA_RESUMABLE
When you run a large Oracle Data Pump import (impdp), the job can fail mid-way if a tablespace runs out of space. Oracle's resumable import feature prevents this by suspending the job instead of failing it, giving you time to fix the problem and then letting the job continue automatically.
What Is a Resumable Import?
A resumable operation is a database operation that can be paused when it hits a correctable error — such as a full tablespace — and then automatically resumed once the problem is fixed. Instead of losing all progress and restarting from zero, you simply add space and the import picks up where it left off.
Resumable Parameters and Data Pump Import
Data Pump impdp has no RESUMABLE, RESUMABLE_NAME or RESUMABLE_TIMEOUT parameters. Those three belong to the original imp utility. If you pass them to impdp, it switches to legacy mode and ignores them, because Data Pump provides resumable waits automatically for users granted the IMP_FULL_DATABASE role. To give the job a name you can find later, use JOB_NAME instead.
Original imp parameter | What impdp does with it |
|---|---|
resumable=y | Ignored — resumable waits are automatic for IMP_FULL_DATABASE users |
resumable_name | Ignored — name the job with JOB_NAME |
resumable_timeout | Ignored |
In the original imp utility, RESUMABLE_TIMEOUT set how long a suspended statement waited for the error to be fixed before it was terminated, with a documented default of 7200 seconds (2 hours). The Data Pump documentation does not list an equivalent impdp parameter.
The RESUMABLE Privilege
For impdp, resumable waits are provided automatically to users with the IMP_FULL_DATABASE role. The RESUMABLE system privilege is what a user needs to enable resumable space allocation for ordinary SQL statements with ALTER SESSION ENABLE RESUMABLE.
1grant resumable to <user>;
Oracle requires this grant because suspended statements can hold system resources while they wait.
Monitoring with DBA_RESUMABLE
A suspended import may not be obvious from the impdp session itself. Oracle reports the error in the alert log, and the statement appears in the DBA_RESUMABLE view, so check either one to know if the job is waiting.
Query 1 — Check Job Status
This query shows all active resumable statements and their current state:
1set lines 100 pages 999
2col name format a20
3
4select name
5 ,start_time
6 ,suspend_time
7 ,status
8from dba_resumable
9/
Column breakdown:
| Column | Description |
|---|---|
NAME | For a Data Pump job, the job name (JOB_NAME, or a default such as SYS_IMPORT_FULL_01) |
START_TIME | When the resumable statement started |
SUSPEND_TIME | When the statement was last suspended (null if it has never been suspended) |
STATUS | One of RUNNING, SUSPENDED, TIMEOUT, ERROR or ABORTED |
The DBA_RESUMABLE view displays all resumable statements currently executing or suspended in the system. When STATUS is SUSPENDED, the job is waiting for you to fix a resource problem before it can continue.
Query 2 — Find the Reason for Suspension
If a job is suspended, this query tells you exactly what went wrong:
1set lines 100 pages 999
2
3select error_msg
4from dba_resumable
5where name like '%&job_name%'
6/
The ERROR_MSG column holds the message for ERROR_NUMBER, the last correctable error — typically a space error on a tablespace that cannot extend. In the impdp log, Data Pump reports the wait as ORA-39171: Job is experiencing a resumable wait, and the follow-on message describes the cause.
Key Points to Remember
- Always monitor actively. A suspension may not be obvious from the
impdpsession — checkDBA_RESUMABLEor the alert log regularly. IMP_FULL_DATABASEusers get resumable waits automatically. TheRESUMABLEprivilege is forALTER SESSION ENABLE RESUMABLEin ordinary SQL sessions.JOB_NAMEis your tracking label. Choose a clear, unique job name so you can find your job easily inDBA_RESUMABLE.- The 7200-second (2 hour)
RESUMABLE_TIMEOUTdefault belongs to the originalimputility.impdpignores that parameter, and the Data Pump documentation does not state a timeout for its resumable waits. - After fixing the problem (for example, adding space to a tablespace), the suspended job resumes automatically — no manual restart needed.
USER_RESUMABLEis the same view scoped to the current user — useful for non-DBA users checking their own jobs.
Practical Example
Suppose your import is named PROD_IMPORT_2026. You would start the import like this:
1impdp system/password \
2 directory=DATA_PUMP_DIR \
3 dumpfile=export.dmp \
4 logfile=import.log \
5 job_name=PROD_IMPORT_2026
For a Data Pump job, the NAME shown in DBA_RESUMABLE comes from the job name (JOB_NAME, or the default SYS_IMPORT_FULL_01 style name). Then you watch the status with:
1select name, status, suspend_time
2from dba_resumable
3where name like '%PROD_IMPORT_2026%';
If you see STATUS = SUSPENDED, run the error query:
1select error_msg
2from dba_resumable
3where name like '%PROD_IMPORT_2026%';
Fix the reported issue (such as extending a tablespace), and the import continues on its own.
References
- Oracle Data Pump Import Utility — Official Documentation (Oracle 19c) — Full reference for all
impdpparameters and usage. - Oracle Data Pump Legacy Mode (Oracle 19c) — Shows that
impdpignoresRESUMABLE,RESUMABLE_NAMEandRESUMABLE_TIMEOUTbecause the functionality is automatic forIMP_FULL_DATABASEusers. - DBMS_DATAPUMP — Oracle 19c PL/SQL Packages Reference — States that the Data Pump job name identifies the job in
DBA_RESUMABLEwhen it is suspended. - ORA-39171 — Oracle Error Help — Cause and action for the Data Pump resumable wait message.
- Original Import — Oracle 11g Utilities — The original
imputility'sRESUMABLEandRESUMABLE_TIMEOUTparameters, including the 7200-second default. - DBA_RESUMABLE — Oracle 19c Reference — Column definitions and description of the
DBA_RESUMABLEdata dictionary view. - DBA_RESUMABLE — Oracle 10g Reference (Classic) — Original detailed column reference for
DBA_RESUMABLE, includingERROR_MSGandERROR_NUMBER. - Managing Resumable Space Allocation — Oracle DBA Guide 11g — Administrator's guide explaining resumable space allocation, how to enable/disable it, and how to use
DBA_RESUMABLEfor monitoring. - GRANT Statement — Oracle SQL Reference — Official reference for the
GRANTstatement, including granting theRESUMABLEsystem privilege. - Resumable — Oracle Scratchpad (Jonathan Lewis) — Expert-level explanation of the resumable privilege, session control, and how
resumable_timeoutinteracts at the system and session level. - About RESUMABLE, RESUMABLE_NAME Parameter — Oracle FAQ Forums — Forum thread on the
RESUMABLEparameters of the export and import utilities, and whether Data Pump import is resumable by default. - USER_RESUMABLE — Oracle 19c Reference — Description of the
USER_RESUMABLEview, the user-scoped counterpart toDBA_RESUMABLE.