The recommendation from Oracle is to switch from Patch Set Update (PSU) to Proactive Bundle Patch (PBP) only by installing a new patchset or release. i.e 22.214.171.124 to 126.96.36.199 or 12.1.0.X to 188.8.131.52. But it’s possible at any time even rolling.
The idea is quite simple:
Remove the PSU ( with all components: ACFS, DBWLM, OCW, RDBMS PSU) and install the PBP.
Please check in advance the compatibility of other applied patches with the PBP and update OPatch.
Rollback of PSU
Start with stopping the Clusterware and “open” the CRS_HOME:
root# $CRS_HOME/crs/install/rootcrs.pl -prepatch -rollback
Switch to the owner of the clusterware, update opatch and rollback the patches in the revers order of the installation, which should be RDBMS PSU, DBWLM, ACFS, OCW. The patchnumbers mus be adjusted to your patchlevel.
grid$ rm $CRS_HOME/OPatch grid$ unzip p6880880_121010_Linux-x86-64.zip -d $CRS_HOME grid$ $ $CRS_HOME/OPatch/opatch lspatches 21948354;Database Patch Set Update : 184.108.40.206.160119 (21948354) 21436941;WLM Patch Set Update: 220.127.116.11.5 (21436941) 21948341;ACFS Patch Set Update : 18.104.22.168.160119 (21948341) 21948344;OCW Patch Set Update : 22.214.171.124.160119 (21948344) OPatch succeeded. grid$ $ $CRS_HOME/OPatch/opatch rollback -local -id 21948354 grid$ $ $CRS_HOME/OPatch/opatch rollback -local -id 21436941 grid$ $ $CRS_HOME/OPatch/opatch rollback -local -id 21948341 grid$ $ $CRS_HOME/OPatch/opatch rollback -local -id 21948344
More details about the rollback are available in MOS 1591616.1. Now run the rootcrs.pl again as root user and check your clusterware and databases:
root# $CRS_HOME/crs/install/rootcrs.pl -postpatch -rollback
An alternative to the rollback of each patch is to use opatchauto rollback. I prefer to do it step by step, because opatchauto often fails with less meaningful information.
If everything is fine, proceed with all other nodes with the above steps.
When you are finished with all nodes, you have an unpatched cluster and opatch lspaches won’t show any patches. Also the clusterware should no longer show update mode, what you can check with:
grid$ crsctl query crs activeversion -f
Installation of PBP
Now you can proceed with the installation of the Proactive Bundle Patch.
This time with less description, because the installation is straight forward and well described by Oracle.
root# $CRS_HOME/crs/install/rootcrs.pl -prepatch grid$ $CRS_HOME/OPatch/opatch apply -local /path/to/my/patch/25433352/25481150 grid$ $CRS_HOME/OPatch/opatch apply -local /path/to/my/patch/25433352/25363750 grid$ $CRS_HOME/OPatch/opatch apply -local /path/to/my/patch/25433352/21436941 grid$ $CRS_HOME/OPatch/opatch apply -local /path/to/my/patch/25433352/25397136 root# $CRS_HOME/crs/install/rootcrs.pl -postpatch
Or do the same as opatch apply, but with only one command:
root$ $CRS_HOME/OPatch/opatchauto apply /path/to/my/patch/25433352 -oh $CRS_HOME
The Cluster should now be up to date with the Proactive Bundle Patch:
grid$ $CRS_HOME/OPatch/opatch lspatches 25481150;OCW Interim patch for 25481150 25397136;DATABASE BUNDLE PATCH: 126.96.36.199.170418 (25397136) 25363750;ACFS Patch Set Update : 188.8.131.52.170418 (25363750) 21436941;WLM Patch Set Update: 184.108.40.206.5 (21436941) OPatch succeeded.
Please keep in mind that you have to stop acfs in advance if used and your databases are stopped with intermediate option. For productive databases I recommend to stop them with option transitional.
To verify your clusterware run cluvfy or/and orachk -o post. This is also quite useful to run before the patching.