Grid Infrastructure: Switch from PSU to PBP

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 to or 12.1.0.X to 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/ -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 -d $CRS_HOME 
grid$ $ $CRS_HOME/OPatch/opatch lspatches
21948354;Database Patch Set Update : (21948354)
21436941;WLM Patch Set Update: (21436941)
21948341;ACFS Patch Set Update : (21948341)
21948344;OCW Patch Set Update : (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 again as root user and check your clusterware and databases:

root# $CRS_HOME/crs/install/ -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.

opatch apply

This time with less description, because the installation is straight forward and well described by Oracle.

root# $CRS_HOME/crs/install/ -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/ -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: (25397136)
25363750;ACFS Patch Set Update : (25363750)
21436941;WLM Patch Set Update: (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.

After patching

To verify your clusterware run cluvfy or/and orachk -o post. This is also quite useful to run before the patching.