This question came up by a customer, and it was referring to the FAQ MOS note for MRPs. In brief, it was stated that you could apply a higher RU into a home where an MRP up to MRP3 had been installed in the previous home. So the question raised to me was: Can I apply an RU to a home with an MRP as it was mentioned in the FAQ document?

Photo by Liana S on Unsplash
Which note, and what’s the statement?
The FAQ2283 – Introducing Monthly Recommended Patches (MRPs) and FAQ stated the following under Q18:
Q18: When 19.21 DB RU is being applied , will opatch report a conflict if (19.20 DB RU + MRP 1 + MRP 2+MRP 3) are applied? What sort of conflict – Subset /Superset?
A: No. There will not be a conflict reported as the next RU will act as a superset of the prior 3 MRPs installed.
And a customer mailed me and asked whether this is correct. He was puzzled and tried to map this to his own patching strategy.
Then I did some internal investigation and tried to bring up my points. I’ve been told that this is working as long as you only apply MRP1, MRP2 and/or MRP3 to the home since those are supposed to be part of the next RU.
I had my doubts.
Let’s try it out
At first, I apply MRP3 to my 19.31 home. This is Patch 39661761: DATABASE MRP 19.31.0.0.260721, and it is password protected since it got superseeded by MRP4 for 19.31 already.
$ORACLE_HOME/OPatch/opatch napply ./39661761 OPatch.SKIP_VERIFY=true OPatch.SKIP_VERIFY_SPACE=true Oracle Interim Patch Installer version 12.2.0.1.51 Copyright (c) 2026, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.51 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2026-08-29_15-24-08PM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 38494116 38937302 39052286 39060241 39293442 39429942 39498075 39575331 39576482 39594515 39598920 39661105 39661114 Do you want to proceed? [y|n] y User Responded with: Y All checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/19') Is the local system ready for patching? [y|n] y User Responded with: Y Backing up files... Applying interim patch '38494116' to OH '/u01/app/oracle/product/19' ApplySession: Optional component(s) [ oracle.oid.client, 19.0.0.0.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.ldap.rsf, 19.0.0.0.0... Patching component oracle.rdbms.rsf, 19.0.0.0.0... Patching component oracle.rdbms, 19.0.0.0.0... Patching component oracle.ldap.client, 19.0.0.0.0... Applying interim patch '38937302' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms, 19.0.0.0.0... Applying interim patch '39052286' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms, 19.0.0.0.0... Applying interim patch '39060241' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms.dbscripts, 19.0.0.0.0... Patching component oracle.ovm, 19.0.0.0.0... Applying interim patch '39293442' to OH '/u01/app/oracle/product/19' Patching component oracle.sdo, 19.0.0.0.0... Applying interim patch '39429942' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms, 19.0.0.0.0... Applying interim patch '39498075' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms, 19.0.0.0.0... Applying interim patch '39575331' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms.dbscripts, 19.0.0.0.0... Applying interim patch '39576482' to OH '/u01/app/oracle/product/19' Patching component oracle.perlint, 5.28.1.0.0... Applying interim patch '39594515' to OH '/u01/app/oracle/product/19' Patching component oracle.dbdev, 19.0.0.0.0... Applying interim patch '39598920' to OH '/u01/app/oracle/product/19' Patching component oracle.dbjava.jdbc, 19.0.0.0.0... Patching component oracle.dbjava.ic, 19.0.0.0.0... Applying interim patch '39661105' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms.rsf, 19.0.0.0.0... Patching component oracle.rdbms, 19.0.0.0.0... Applying interim patch '39661114' to OH '/u01/app/oracle/product/19' Patching component oracle.rdbms, 19.0.0.0.0... Patching component oracle.network.rsf, 19.0.0.0.0... Patching component oracle.rdbms.rsf, 19.0.0.0.0... Patches 38494116,38937302,39052286,39060241,39293442,39429942,39498075,39575331,39576482,39594515,39598920,39661105,39661114 successfully applied. Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2026-08-29_15-24-08PM_1.log OPatch succeeded.
Then I want to apply the RU 19.32 on top – in-place, into the existing Oracle Home.
So, we have 19.31 plus the MRP3 – and I’d like to add 19.32 to the same home.
It fails.
$ORACLE_HOME/OPatch/opatch apply ./39472050 Oracle Interim Patch Installer version 12.2.0.1.52 Copyright (c) 2026, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.52 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2026-08-29_17-29-24PM_1.log Verifying environment and performing prerequisite checks... Conflicts/Supersets for each patch are: Patch : 39472050 Bug Superset of 39598920 Super set bugs are: 39060101, 39128024, 39127997 Bug Superset of 39498075 Super set bugs are: 39370763, 39360889 Bug Superset of 39661114 Super set bugs are: 39661114 Bug Superset of 38937302 Super set bugs are: 38937302 Bug Superset of 39594515 Super set bugs are: 39594515 Bug Superset of 39575331 Super set bugs are: 39575331 Bug Superset of 39429942 Super set bugs are: 39429942 Bug Superset of 39661105 Super set bugs are: 39661105 Bug Superset of 39576482 Super set bugs are: 39576482 Bug Superset of 39060241 Super set bugs are: 39060241 Bug Superset of 38494116 Super set bugs are: 38494116 Conflict with 39196236 Conflict details: /u01/app/oracle/product/19/rdbms/admin/catmetviews.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kutable.xsl /u01/app/oracle/product/19/rdbms/xml/schema/kustablt.xsd /u01/app/oracle/product/19/rdbms/xml/xsl/kucommon.xsl /u01/app/oracle/product/19/rdbms/admin/catnomta.sql /u01/app/oracle/product/19/rdbms/admin/c18.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kustablc.xsl /u01/app/oracle/product/19/rdbms/xml/xsl/kulob.xsl /u01/app/oracle/product/19/rdbms/admin/catmetloadxsl.sql /u01/app/oracle/product/19/rdbms/admin/prvtxdba.plb /u01/app/oracle/product/19/rdbms/admin/dbmsplts.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kuprtobj.xsl /u01/app/oracle/product/19/rdbms/admin/prvtplts.plb /u01/app/oracle/product/19/rdbms/xml/xsl/kuconstr.xsl /u01/app/oracle/product/19/rdbms/admin/catmetgrant1.sql /u01/app/oracle/product/19/rdbms/admin/prvtbpf.plb /u01/app/oracle/product/19/rdbms/admin/prvthpui.plb /u01/app/oracle/product/19/rdbms/xml/xsl/kuntab.xsl /u01/app/oracle/product/19/rdbms/admin/catpdeps.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kuscommc.xsl /u01/app/oracle/product/19/rdbms/xml/xsl/kustorag.xsl /u01/app/oracle/product/19/rdbms/admin/catpspec.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kuscomm.xsl /u01/app/oracle/product/19/rdbms/admin/catmetinsert.sql /u01/app/oracle/product/19/rdbms/admin/catdwgrd.sql /u01/app/oracle/product/19/rdbms/admin/catmettypes.sql /u01/app/oracle/product/19/rdbms/admin/prvtbpm.plb /u01/app/oracle/product/19/rdbms/admin/prvtbpw.plb /u01/app/oracle/product/19/rdbms/xml/xsl/kuuser.xsl /u01/app/oracle/product/19/rdbms/xml/xsl/kustable.xsl /u01/app/oracle/product/19/rdbms/admin/catmet2.sql /u01/app/oracle/product/19/rdbms/xml/xsl/kustbphy.xsl /u01/app/oracle/product/19/rdbms/admin/prvtbpui.plb Bug Superset of 39034528 Super set bugs are: 32005046 (... cut out the long list of fixes ...) , 37452627 Bug Superset of 39052286 Super set bugs are: 39052286 Bug Superset of 39293442 Super set bugs are: 39293442 Following patches have conflicts: [ 39196236 39472050 ] Use the MOS Patch Conflict Checker "https://support.oracle.com/epmos/faces/PatchConflictCheck" to resolve. See MOS documents 1941934.1 and 1299688.1 for additional information and resolution methods. UtilSession failed: Reason - Superset Patch 39472050 has Subset Patch 39034528 which has overlay patches [39293442,39052286,39598920,39594515,39575331,39576482,39429942,39196236,38937302,39498075,39060241,38494116,39661114,39661105] and these overlay patches conflict with Superset Patch or are not included in Superest Patch OPatch recommends any one of the following actions - Please rebuild the superset patch to make sure it supersedes all the relevent patch(es) (which are the subset patch and all of its overlay patches). The rebuilt patch should contain bug fix [32005046, (... cut out the long list of fixes ...) - Please rollback the relevant overlay patches of the subset patches and apply the superset patch Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2026-08-29_17-29-24PM_1.log OPatch failed with error code 73
Why is this not working?
Well, the reason is not what I thought. It is way more obvious.
Look at my inventory, and the last lines:
./OPatch/opatch lspatches 39661114;Fix for Bug 39661114 39661105;Fix for Bug 39661105 39598920;MERGE ON DATABASE RU 19.31.0.0.0 OF 39060101 39127997 39128024 39594515;Fix for Bug 39594515 39576482;Fix for Bug 39576482 39575331;Fix for Bug 39575331 39498075;MERGE ON DATABASE RU 19.31.0.0.0 OF 39360889 39370763 39429942; DB_DOMAIN NAME CHANGED TO UPPER CASE AUTOMATICALLY 39293442;Fix for Bug 39293442 39060241;Fix for Bug 39060241 39052286;Fix for Bug 39052286 38937302;AFTER APPLYING 19.30 DBRU THE AUTOTASK SQL TUNING ADVISOR GETS ORA-13602 38494116;Fix for Bug 38494116 39196236;DATAPUMP BUNDLE PATCH 19.31.0.0.0 38906621;OJVM RELEASE UPDATE: 19.31.0.0.260421 (38906621) 39034528;Database Release Update : 19.31.0.0.260421 (REL-APR2026) (39034528) 29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399) OPatch succeeded.
These are one-off patches, and I need to remove them as well before I can apply another RU.
39196236;DATAPUMP BUNDLE PATCH 19.31.0.0.0 38906621;OJVM RELEASE UPDATE: 19.31.0.0.260421 (38906621)
Which I did.
./OPatch/opatch nrollback -id 39196236,38906621
Why is it working now?
To be frank, I am surprised that it works.
To me, this wasn’t expected. I was under the impression that the one-off fixes in the MRP were made specifically for 19.31. But it seems to be that either opatch “exchanges” them silently since it recognizes that it has the same fixes in its package being part of 19.32. Or it skips them.
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 12.2.0.1.52 Copyright (c) 2026, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.52 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2026-08-29_18-04-39PM_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
Of course, I applied it.
It worked.
And don’t forget to start your databases and open your PDBs, and run datapatch.
Ok, I did check also what has happened to these patches from MRP3: They’ve been set “inactive”:
[Aug 29, 2026 6:26:55 PM] [INFO] Sub-set patch [39293442] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39052286] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39598920] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39594515] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39575331] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39576482] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39429942] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [38937302] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39498075] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39060241] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [38494116] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39661114] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39034528] has become inactive due to the application of a super-set patch [39472050].
Sub-set patch [39661105] has become inactive due to the application of a super-set patch [39472050].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Why is this still NOT working in most cases?
Is this the ultimate solution for the fanboys and fangirls of in-place-patching avoiding rollback actions?
Nope.
This will only work in the unlikely event of loss in cabin pr... sorry … in the unlikely event that you have nothing else installed except for the RU and the MRP.
How often does this happen? Not very often.
And again, as I explained multiple times, this would only matter if you patch in-place, and not when you follow our recommendation and always patch out-of-place. You still need to remove all other one-offs and bundles when you patch in-place to benefit from this option.
Or those of you who use Gold Images? It will likely fail as well since for instance the 19.31 Gold Image has MRP4 already included. And for MRP4 you can’t jump to 19.32.
Summary
In essence, it means:
When you have only an RU plus MRP1, MRP2 or MRP3, then you can apply the subsequent RU into the existing home without the need to remove the MRP. And only then …
What I didn’t try out is whether this will work with MRP6 and the RU 6 months later, for instance 19.30 with MRP6 trying to apply 19.32 on top. Maybe it does. But since I consider this a rare edge case, and since I do want you all to use out-of-place patching, I won’t spend time on it.
Patch out-of-place, and all is fine.
Further Links and Information
–Mike