After working with Data Pump for some years, I devised my own ways of monitoring the progress of imports and exports that seemed stalled based on the built-in Oracle views as well as the OS level commands.

A simple way to gain insight into the status of a Data Pump job is to look into a few views maintained within the Oracle instance the Data Pump job is running. These views are DBA_DATAPUMP_JOBS, DBA_DATAPUMP_SESSIONS, and V$SESSION_LOGOPS. These views are critical in the monitoring of your export jobs so, as we will see in a later article, you can attach to a Data Pump job and modify the execution of the that job

1. Monitor at the OS level by doing "ps -ef" command:

ps -ef | grep impdp or ps -ef | grep expdp

2. Querying DBA_DATAPUMP_JOBS view:

This view will show the active Data Pump jobs, their state, degree of parallelism, and the number of sessions attached.

SQL> select * from dba_datapump_jobs

OWNER_NAME JOB_NAME               OPERATION  JOB_MODE   STATE         DEGREE    ATTACHED_SESSIONS
---------- ---------------------- ---------- ---------- ------------- --------- -----------------
JKOOP      SYS_EXPORT_FULL_01     EXPORT     FULL       EXECUTING     1          1
JKOOP      SYS_EXPORT_SCHEMA_01   EXPORT     SCHEMA     EXECUTING     1          1

3. Querying V$SESSION_LONGOPS :

SELECT opname,target_desc,sofar,totalwork,time_remaining,units FROM  v$session_longops;
The v$session_longops alows us to see the progress of data pump by querying the sofar and totalwork columns.

4.query the DBA_RESUMABLE view to check any errors :

select name, sql_text, error_msg from dba_resumable;

5. Tail the export or import log for any errors