Data Pump Bundle Patch
Overview and complete installation walkthrough with examples for 19c and 23ai databases.
Introductionβ
As a best practice when working with Data Pump, the Data Pump Bundle Patch (DPBP) should be installed on top of the Database Release Update (DBRU). The DPBP contains numerous bug fixes as well as performance enhancements that can significantly improve Data Pump operations.
Support Notesβ
The patch can be downloaded from the following support notes:
- 19c:
- 21c:
- Innovation Release: No Data Pump Bundle Patch available
- 23ai:
Installationβ
The patch can be applied online but no active Data Pump jobs should be running. There is no need to shutdown the databases and services running in the affected Oracle Home.
The patch is non-binary which means it does not change any files in the Oracle Home that would require a new compilation of the Oracle binaries.
Make sure there are no Data Pump jobs running during the Data Pump Bundle Patch installation!
Use the DBA_DATAPUMP_JOBS
or CDB_DATAPUMP_JOBS
(for the whole container) views to check for any running Data Pump jobs.
RACβ
The DPBP is non-RAC rolling installable. This means the opatch apply
must be executed on every RAC node with the -local
option to patch the Oracle Home.
Example: 19cβ
This is an example that shows how to install the Data Pump Bundle Patch on top of a 19c Linux database with the 19.25 Release Update.
Run the following tasks as oracle
user. Make sure the environment is set to the correct database and Oracle Home.
1. Check Versionβ
Get the exact version of the database by checking the opatch lspatches
and sqlpatch registry outputs:
-
Check applied patches for Oracle Home:
$ORACLE_HOME/OPatch/opatch lspatches
Output...
36912597;Database Release Update : 19.25.0.0.241015 (36912597)
...The DBRU 19.25 is installed in this Oracle Home.
-
Check patches applied in the container and pluggable databases: (For a non CDB database use
dba_registry_sqlpatch
)col status format a10;
col action format a10;
col description format a55;
set lines 100;
SELECT DISTINCT patch_id, patch_type, action, status, description FROM cdb_registry_sqlpatch where patch_type='RU';OutputPATCH_ID PATCH_TYPE ACTION STATUS DESCRIPTION
---------- ---------- ---------- ---------- -------------------------------------------------------
36912597 RU APPLY SUCCESS Database Release Update : 19.25.0.0.241015 (36912597) -
Show version for running instances:
SELECT DISTINCT version_full FROM gv$instance;
OutputVERSION_FULL
-----------------
19.25.0.0.0
2. Download Patchβ
Download the patch from the support note.
Make sure to download the version that matches the exact version of your Database Release Update (DBRU) and download the correct platform (Windows/Other platforms).
In this example we are downloading patch 37056207 for 19.25 on linux platforms:
3. Copy and Extractβ
-
Create a new directory on the database server:
mkdir DPBP1925
-
Copy the downloaded patch zip file to that directory and unzip it:
unzip p37056207_1925000DBRU_Generic.zip
4. Check Prerequisitesβ
-
View the Patch README and check the prerequisites.
-
Run
opatch
with theprereq
option to check for any conflicts:cd 37056207
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./Output...
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
5. Check for running jobsβ
Run the following query to check if any Data Pump jobs are running in state EXECUTING
on any database in the container: (For a non CDB database use dba_datapump_jobs
)
col owner_name format a15;
col job_name format a15;
col job_name format a25;
col operation format a15;
col job_mode format a15;
col state format a15;
set lines 100;
SELECT owner_name, job_name, operation, job_mode, state, con_id FROM cdb_datapump_jobs;
6. Run Opatchβ
Run opatch apply to patch the Oracle Home:
$ORACLE_HOME/OPatch/opatch apply -local
Output
Oracle Interim Patch Installer version 12.2.0.1.44
Copyright (c) 2025, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/19c/dbhome_1
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version : 12.2.0.1.44
OUI version : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2025-03-13_17-29-36PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 37056207
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '37056207' to OH '/u01/app/oracle/product/19c/dbhome_1'
Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
Patching component oracle.rdbms, 19.0.0.0.0...
Patch 37056207 successfully applied.
Log file location: /u01/app/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2025-03-13_17-29-36PM_1.log
OPatch succeeded.
7. Verify Opatchβ
Check output of opatch lspatches
and confirm that the patch was applied:
$ORACLE_HOME/OPatch/opatch lspatches
...
37056207;DATAPUMP BUNDLE PATCH 19.25.0.0.0
...
8. RAC (other nodes)β
Repeat steps 6 and 7 on all the other cluster nodes one after another until all cluster nodes are patched successfully.
9. Run datapatchβ
For a RAC database make sure to run datapatch
only on one node.
-
Before running datapatch check the invalid objects in the database:
select owner, object_name, last_ddl_time from dba_objects where status != 'VALID';
-
Run datapatch to apply the patch in the database:
$ORACLE_HOME/OPatch/datapatch
To output additional diagnostic information datapatch -verbose
can be used:
Datapatch User Guide (Doc ID 2680521.1)
Output
SQL Patching tool version 19.25.0.0.0 Production on Thu Mar 13 17:37:17 2025
Copyright (c) 2012, 2024, Oracle. All rights reserved.
Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_12499_2025_03_13_17_37_17/sqlpatch_invocation.log
Connecting to database...OK
Gathering database info...done
Note: Datapatch will only apply or rollback SQL fixes for PDBs
that are in an open state, no patches will be applied to closed PDBs.
Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
(Doc ID 1585822.1)
Bootstrapping registry and package to current versions...done
Determining current state...done
Current state of interim SQL patches:
Interim patch 32081424 (ADD EXTERNAL TABLE ACCESS PARAMETER TO SPECIFY THE VALUE OF THE PREPROCESSOR):
Binary registry: Installed
PDB CDB$ROOT: Applied successfully on 12-MAR-25 07.42.46.625881 PM
PDB ORCLPDB: Applied successfully on 12-MAR-25 07.51.45.741400 PM
PDB PDB$SEED: Applied successfully on 12-MAR-25 07.51.45.741400 PM
Interim patch 36878697 (OJVM RELEASE UPDATE: 19.25.0.0.241015 (36878697)):
Binary registry: Installed
PDB CDB$ROOT: Applied successfully on 12-MAR-25 07.36.35.310021 PM
PDB ORCLPDB: Applied successfully on 12-MAR-25 07.47.24.442437 PM
PDB PDB$SEED: Applied successfully on 12-MAR-25 07.47.24.442437 PM
Interim patch 37056207 (DATAPUMP BUNDLE PATCH 19.25.0.0.0):
Binary registry: Installed
PDB CDB$ROOT: Not installed
PDB ORCLPDB: Not installed
PDB PDB$SEED: Not installed
Current state of release update SQL patches:
Binary registry:
19.25.0.0.0 Release_Update 241010184253: Installed
PDB CDB$ROOT:
Applied 19.25.0.0.0 Release_Update 241010184253 successfully on 12-MAR-25 07.42.41.594629 PM
PDB ORCLPDB:
Applied 19.25.0.0.0 Release_Update 241010184253 successfully on 12-MAR-25 07.51.43.383424 PM
PDB PDB$SEED:
Applied 19.25.0.0.0 Release_Update 241010184253 successfully on 12-MAR-25 07.51.43.383424 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB
No interim patches need to be rolled back
No release update patches need to be installed
The following interim patches will be applied:
37056207 (DATAPUMP BUNDLE PATCH 19.25.0.0.0)
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 37056207 apply (pdb CDB$ROOT): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37056207/25840925/37056207_apply_ORCL_CDBROOT_2025Mar13_17_37_37.log (no errors)
Patch 37056207 apply (pdb PDB$SEED): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37056207/25840925/37056207_apply_ORCL_PDBSEED_2025Mar13_17_40_06.log (no errors)
Patch 37056207 apply (pdb ORCLPDB): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37056207/25840925/37056207_apply_ORCL_ORCLPDB_2025Mar13_17_40_06.log (no errors)
SQL Patching tool complete on Thu Mar 13 17:43:40 2025
The Patch was installed in the container and all pluggable databases.
10. Recompileβ
-
Run
utlrp.sql
to recompile invalid objects:@?/rdbms/admin/utlrp.sql
OutputOBJECTS WITH ERRORS
-------------------
0
...
ERRORS DURING RECOMPILATION
---------------------------
0 -
Check invalid objects in the database:
select owner, object_name, last_ddl_time from dba_objects where status != 'VALID';
Outputno rows selected
11. Verify datapatchβ
Run the following query to check the sqlpatch registry in the database if the patch was applied successfully: (For a non CDB database use dba_registry_sqlpatch
)
col status format a15
col description format a40
set lines 100
SELECT DISTINCT patch_id, patch_type, action, status, description FROM cdb_registry_sqlpatch WHERE description like 'DATAPUMP BUNDLE%';
PATCH_ID PATCH_TYPE ACTION STATUS DESCRIPTION
---------- ---------- --------------- --------------- ----------------------------------------
37056207 INTERIM APPLY SUCCESS DATAPUMP BUNDLE PATCH 19.25.0.0.0
Example: 23aiβ
This is an example that shows how to install the Data Pump Bundle Patch on top of a 23ai RAC Linux database with the 23.7 Release Update.
Run the following tasks as oracle
user. Make sure the environment is set to the correct database and Oracle Home.
1. Check Versionβ
Get the exact version of the database by checking the opatch lspatches
and sqlpatch registry outputs:
-
Check applied patches for Oracle Home:
$ORACLE_HOME/OPatch/opatch lspatches
Output...
37366180;Database Release Update : 23.7.0.25.01 (37366180) Gold Image
...The DBRU 23.7 is installed in this Oracle Home.
-
Check patches applied in the container and pluggable databases:
col status format a10;
col action format a10;
col description format a60;
set lines 110;
SELECT DISTINCT patch_id, patch_type, action, status, description FROM cdb_registry_sqlpatch where patch_type='RU';OutputPATCH_ID PATCH_TYPE ACTION STATUS DESCRIPTION
---------- ---------- ---------- ---------- ------------------------------------------------------------
37366180 RU APPLY SUCCESS Database Release Update : 23.7.0.25.01 (37366180) Gold Image -
Show version for running instances:
SELECT DISTINCT version_full FROM gv$instance;
OutputVERSION_FULL
-----------------
23.7.0.25.01
2. Download Patchβ
Download the patch from the support note.
Make sure to download the version that matches the exact version of your Database Release Update (DBRU).
In this example we are downloading patch 37491421 for 23.7.
3. Copy and Extractβ
-
Create a new directory on the database server:
mkdir DPBP237
-
Copy the downloaded patch zip file to that directory and unzip it:
unzip p37491421_23702501DBRU_Generic.zip
4. Check Prerequisitesβ
-
View the Patch README and check the prerequisites.
-
Run
opatch
with theprereq
option to check for any conflicts:cd 37491421
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./Output...
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
5. Check for running jobsβ
Run the following query to check if any Data Pump jobs are running in state EXECUTING
on any database in the container:
col owner_name format a15;
col job_name format a15;
col job_name format a25;
col operation format a15;
col job_mode format a15;
col state format a15;
set lines 100;
SELECT owner_name, job_name, operation, job_mode, state, con_id FROM cdb_datapump_jobs;
6. Run Opatchβ
Run opatch apply to patch the Oracle Home:
$ORACLE_HOME/OPatch/opatch apply -local
Output
Oracle Interim Patch Installer version 12.2.0.1.45
Copyright (c) 2025, Oracle Corporation. All rights reserved.
Oracle Home : /u02/app/oracle/product/23.0.0.0/dbhome_5
Central Inventory : /u01/app/oraInventory
from : /u02/app/oracle/product/23.0.0.0/dbhome_5/oraInst.loc
OPatch version : 12.2.0.1.45
OUI version : 12.2.0.9.0
Log file location : /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/opatch/opatch2025-03-17_18-48-44PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 37491421
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '37491421' to OH '/u02/app/oracle/product/23.0.0.0/dbhome_5'
Patching component oracle.rdbms, 23.0.0.0.0...
Patching component oracle.rdbms.dbscripts, 23.0.0.0.0...
Patch 37491421 successfully applied.
Warning: No inactive RU is eligible for delete. See log file for more details
Log file location: /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/opatch/opatch2025-03-17_18-48-44PM_1.log
OPatch succeeded.
7. Verify Opatchβ
Check output of opatch lspatches
and confirm that the patch was applied:
$ORACLE_HOME/OPatch/opatch lspatches
...
37491421;DATAPUMP BUNDLE PATCH 23.7.0.0.0
...
8. RAC (other nodes)β
Repeat steps 6 and 7 on all the other cluster nodes one after another until all cluster nodes are patched successfully.
9. Run datapatchβ
For a RAC database make sure to run datapatch
only on one node.
-
Before running datapatch check the invalid objects in the database:
select owner, object_name, last_ddl_time from dba_objects where status != 'VALID';
-
Run datapatch to apply the patch in the database:
$ORACLE_HOME/OPatch/datapatch
To output additional diagnostic information datapatch -verbose
can be used:
Datapatch User Guide (Doc ID 2680521.1)
Output
SQL Patching tool version 23.7.0.25.01 Lim on Mon Mar 17 18:53:30 2025
Copyright (c) 2012, 2025, Oracle. All rights reserved.
Log file for this invocation: /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/sqlpatch/sqlpatch_sid_MDEXAF231_ts_2025_03_17_18_53_30_pid_230298/sqlpatch_invocation.log
Connecting to database...OK
Gathering database info...done
Note: Datapatch will only apply or rollback SQL fixes for PDBs
that are in an open state, no patches will be applied to closed PDBs.
Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
(Doc ID 1585822.1)
Bootstrapping registry and package to current versions...done
Determining current state...done
Current state of interim SQL patches:
Interim patch 37491421 (DATAPUMP BUNDLE PATCH 23.7.0.0.0):
Binary registry: Installed
PDB CDB$ROOT: Not installed
PDB PDB$SEED: Not installed
PDB PDB1: Not installed
Current state of release update SQL patches:
Binary registry:
23.7.0.25.01 Release_Update 250116103325: Installed
PDB CDB$ROOT:
Applied 23.7.0.25.01 Release_Update 250116103325 successfully on 07-FEB-25 11.36.11.122891 AM
PDB PDB$SEED:
Applied 23.7.0.25.01 Release_Update 250116103325 successfully on 07-FEB-25 11.36.11.344018 AM
PDB PDB1:
Applied 23.7.0.25.01 Release_Update 250116103325 successfully on 07-FEB-25 11.36.11.344018 AM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED PDB1
No interim patches need to be rolled back
No release update patches need to be installed
The following interim patches will be applied:
37491421 (DATAPUMP BUNDLE PATCH 23.7.0.0.0)
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 37491421 apply (pdb CDB$ROOT): SUCCESS
logfile: /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/sqlpatch/sqlpatch_sid_MDEXAF231_ts_2025_03_17_18_53_30_pid_230298/37491421_apply_MDEXAF23_CDBROOT_2025Mar17_18_53_52.log (no errors)
Patch 37491421 apply (pdb PDB$SEED): SUCCESS
logfile: /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/sqlpatch/sqlpatch_sid_MDEXAF231_ts_2025_03_17_18_53_30_pid_230298/37491421_apply_MDEXAF23_PDBSEED_2025Mar17_18_55_20.log (no errors)
Patch 37491421 apply (pdb PDB1): SUCCESS
logfile: /u02/app/oracle/product/23.0.0.0/dbhome_5/cfgtoollogs/sqlpatch/sqlpatch_sid_MDEXAF231_ts_2025_03_17_18_53_30_pid_230298/37491421_apply_MDEXAF23_PDB1_2025Mar17_18_55_20.log (no errors)
SQL Patching tool complete on Mon Mar 17 19:06:06 2025
The Patch was installed in the container and all pluggable databases.
10. Recompileβ
-
Run
utlrp.sql
to recompile invalid objects:@?/rdbms/admin/utlrp.sql
OutputOBJECTS WITH ERRORS
-------------------
0
...
ERRORS DURING RECOMPILATION
---------------------------
0 -
Check invalid objects in the database:
select owner, object_name, last_ddl_time from dba_objects where status != 'VALID';
Outputno rows selected
11. Verify datapatchβ
Run the following query to check the sqlpatch registry in the database if the patch was applied successfully:
col status format a15
col description format a40
set lines 100
SELECT DISTINCT patch_id, patch_type, action, status, description FROM cdb_registry_sqlpatch WHERE description like 'DATAPUMP BUNDLE%';
PATCH_ID PATCH_TYPE ACTION STATUS DESCRIPTION
---------- ---------- --------------- --------------- ----------------------------------------
37491421 INTERIM APPLY SUCCESS DATAPUMP BUNDLE PATCH 23.7.0.0.0