This question was in my inbox this morning raised by a customer via a colleague.
“Can I apply a BP on top of a PSU? Or vice versa?”
Our feeling said:
Yes, but you’ll have to deinstall the PSU first before applying the BP.
Having a feeling is one thing, knowing the truth is better. And as I have so much fun by applying PSUs and BPs back and forth since two weeks I thought “let’s give it a try”. So here we go …
Apply a BP on top of a PSU
This is my starting point – Oracle Database 12.1.0.2 with PSU October 2015, the last state in my VBox environment since I experiment with parameters and packages at the moment.
And this is the result when trying to apply the BP from April 2016 on top:
[CDB2] oracle@localhost:/media/sf_CTEMP/22899531/22899531/22806133 $ opatch apply Oracle Interim Patch Installer version 12.1.0.1.10 Copyright (c) 2016, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12.1.0.2 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/12.1.0.2/oraInst.loc OPatch version : 12.1.0.1.10 OUI version : 12.1.0.2.0 Log file location : /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2016-05-03_10-26-37AM_1.log Verifying environment and performing prerequisite checks... Conflicts/Supersets for each patch are: Sub-Patch : 20243804 Bug Conflict with Sub-Patch 21359755 Conflicting bugs are: 18966843, 19468991, 19032777, 19587324 [..] Following patches have conflicts: [ 21359755 22806133 ] Refer to My Oracle Support Note 1299688.1 for instructions on resolving patch conflicts. UtilSession failed: Patch 21359755 is a composite patch which could not be rollback. Log file location: /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2016-05-03_10-26-37AM_1.log OPatch failed with error code 73
Ok, our suspicion was correct.
There are a lot of conflicts – I have to remove the PSU first. And of course the recommended conflict check would have given me the same result. Furthermore I think I have read this a while back in one of the central notes about PSUs and BPs in MOS as well.
Removing the PSU from October 2015 first
Removing a PSU or BP is very simple and straight forward (and well described in the ReadMe.html coming coming with the patch).
[CDB2] oracle@localhost:/media/sf_CTEMP/21359755/21359755 $ opatch rollback -id 21359755 Oracle Interim Patch Installer version 12.1.0.1.10 Copyright (c) 2016, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12.1.0.2 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/12.1.0.2/oraInst.loc OPatch version : 12.1.0.1.10 OUI version : 12.1.0.2.0 Log file location : /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/21359755_May_03_2016_10_41_54/rollback2016-05-03_10-41-54AM_1.log Patches will be rolled back in the following order: 21359755 20831110 20299023 19769480 The following patch(es) will be rolled back: 21359755 20831110 20299023 19769480 Sub-patches of a composite series are being rolled back. The system will be returned to a state where all subpatches are rolled back. [..] Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/12.1.0.2') Is the local system ready for patching? [y|n] y User Responded with: Y Rolling back patch 21359755... [..] RollbackSession removing interim patch '19769480' from inventory Log file location: /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/21359755_May_03_2016_10_41_54/rollback2016-05-03_10-41-54AM_1.log OPatch succeeded.
Afterwards please make sure to run ./datapatch -verbose to rollback the SQL changes as explained in section 4 of the README.html (and of course all other steps mentioned there).
Apply the BP from April 2016
I don’t want to repeat myself as I wrote already about this positive experience a few days ago:
I continued this blog post on a later occasion here:
Further Information?
You’ll find recent related postings on this blog here:
- Can I apply a BP on top of a PSU? Or vice versa? (May 3, 2016)
- Oracle April 2016 PSU and Proactive BPs are there (Apr 21, 2016)
- Oracle Database BP April 2016 applied successfully (Apr 21, 2016)
- MOS Note 1454618.1: Quick Reference to Database PSUs, CPUs, BPs and Patchsets (Apr 26, 2016).
–Mike
Mike,
As per Doc ID 1962125.1, I see that Bundle Patch (BP) is meant only for For Exadata platforms and For 12.1.0.2 systems using DB In-Memory. For any other RAC/non-RAC, only GI PSU/DB PSU is applicable.
Could you please clarify/confirm this detail as well here.
Thanks
Laksh
@Laksh:
Sorry for my late reply but currently Support is changing all the naming in MOS documents. It is simply not correct anymore to name those fixes "Exadata" or "In-Memory" Bundle Patches as they are available for all platforms – and Support recommends them now over the PSUs.
Cheers
Mike
Hi Mike,
Quick question, we have 3-5 PSUs applied on our Oracle 12c servers depending on when they were setup.
To apply Bundle Patches in future, do we need to roll back all the applied PSUs first?
Thanks,
Mark.
I see you rollback at the binary level. Do we need to execute the sql rollback for PSUs?
Yes, I did – the section 4 of the README.html explains to run ./datapatch -verbose afterwards as well.
4.1 Patch Deinstallation Instructions for a Non-RAC Environment
Follow these steps:
Shut down all instances and listeners associated with the Oracle home that you are updating. For more information, see Oracle Database Administrator’s Guide.
Run the OPatch utility specifying the rollback argument as follows.
opatch rollback -id 24006101
If there are errors, refer to Section 5, "Known Issues".
4.2 Patch Post-Deinstallation Instructions for a Non-RAC Environment
After deinstalling the patch, perform the following actions:
Section 4.2.1, "Run the datapatch Utility"
Section 4.2.2, "Upgrade Oracle Recovery Manager Catalog"
Sorry for not including this – I’d hope that saying "Removing a PSU or BP is very simple and straight forward (and well described in the ReadMe.html coming coming with the patch)." should be fine. My intention was not to show every step – but I’ll update the blog post with an additional hint.
Thanks for commenting and sorry for the misunderstanding.
Mike
We have a 12 node exadata machine in which every 2 nodes have a separate DB
i.e.on node1 and 2 DB1 is running (2 node RAC)
on node 3 and 4 DB2 is running (2 node RAC)
on node 5 and 6 DB3 is running (2 node RAC)
on node 7 and 8 DB4 is running (2 node RAC)
similarly on node 11 and 12 DB 6 is running.(2 node RAC)
Now there is an application upgrade which requires DB4 running on 07/08 to have certain DB patch. .
Can the patch(DBBP) be applied on nodes 7 and 8 excluding all other nodes.The reason why i am asking this question is path of ORACLE_HOME is same across the cluster as it should be (but not shared)..
vr,
you can have separate homes with separate patch levels on each node as long as they are not shared.
What you shouldn’t do is having a RAC across node 1 and 2, and the db homes on node 1 and 2 have different patch levels.
Thanks,
Mike