Oracle Resumable Import Parameters: Monitor and Manage DBA_RESUMABLE
Oracle Resumable Import Parameters: Monitor and Manage 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 Import Parameters
To enable this feature on your impdp command, you use three parameters together:
1resumable=y
2resumable_name=<name to appear in dba_resumable>
3resumable_timeout=<timeout in seconds>
| Parameter | Purpose |
|---|---|
resumable=y | Enables resumable mode for the import session |
resumable_name | A label you choose β this name appears in DBA_RESUMABLE so you can identify the job |
resumable_timeout | How many seconds Oracle waits in a suspended state before giving up and failing the job |
The resumable_timeout value controls how long Oracle holds the job in a suspended state before it finally times out and aborts. If you set this to a high value (for example, 7200 for two hours), you have more time to fix a full tablespace before the job fails.
Grant the RESUMABLE Privilege
If you are running the import as a user other than SYS or SYSTEM, that user must be granted the RESUMABLE system privilege.
1grant resumable to <user>;
Without this privilege, the user's session cannot control its own resumable state. The RESUMABLE system privilege specifically enables resumable space allocation for the grantee.
Monitoring with DBA_RESUMABLE
Oracle does not always print a visible message on your screen when an import job becomes suspended. You must actively monitor either the alert log or the DBA_RESUMABLE view 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 | The label you set with resumable_name |
START_TIME | When the import session started |
SUSPEND_TIME | When the job was last suspended (null if still running) |
STATUS | Either RUNNING, SUSPENDED, or TIMED OUT |
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 '&resumable_name'
6/
The ERROR_MSG column in DBA_RESUMABLE holds the full error message that caused the suspension. A common cause is ORA-39171: Job is experiencing a resumable wait, which typically means a tablespace is full.
Key Points to Remember
- Always monitor actively. Oracle may not display a suspension message on screen β check
DBA_RESUMABLEor the alert log regularly. - Non-SYS/SYSTEM users need the privilege. Run
grant resumable to <user>before starting the import. resumable_nameis your tracking label. Choose a clear, unique name so you can find your job easily inDBA_RESUMABLE.resumable_timeouthas a default of 7200 seconds (2 hours) in Data Pump, even if you do not set it explicitly βimpdpenables resumable mode by default.- 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 resumable=y \
6 resumable_name=PROD_IMPORT_2026 \
7 resumable_timeout=14400
Then you watch the status with:
1select name, status, suspend_time
2from dba_resumable
3where name = '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. - Parameters Available in Oracle Data Pump Import Command-Line Mode β Detailed list of every Data Pump Import command-line parameter including
RESUMABLE,RESUMABLE_NAME, andRESUMABLE_TIMEOUT. - 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. - Impdp Resumable Mystery β GotoDBA β Practical deep-dive into how
impdphandles theRESUMABLE_TIMEOUTparameter and unexpected behavior when the value is set to 0. - 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 β Community discussion clarifying the purpose of
RESUMABLE,RESUMABLE_NAME, andRESUMABLE_TIMEOUTparameters in Data Pump. - USER_RESUMABLE β Oracle 10g Reference β Description of the
USER_RESUMABLEview, the user-scoped counterpart toDBA_RESUMABLE.