IMHO there have been a number of noteworthy changes in Oracle database patching lately.  I thought I would put them in writing as a reference.

 

First, some vocabulary:

BP: Bundle Patch: contains both new features and fixes

PSU: Patch Set Update: contains fixes

RU: Release Update: contains both new features and fixes

RUR: Release Update Revision: contains security and regression fixes only

 

Remember that since the advent of 12c, we have BPs and PSUs and we must choose one route or the other (don't mix BPUs with PSUs!)? Well, that's outdated.  Since 12cR2 we have RUs and RURs.

Read this article from Mike Dietrich (Database Ugrade Product Manager at Oracle) for an explanation on RUs ad RURs but here's a picture from it:

Differences between PSU / BP and RU / RUR

And to top it all, there are exceptions on Exadata:

You cannot apply a PSU on a 12.1.0.2 Exadata database.

 

Also keep in mind that for RAC, you must install 2 patches: one for the GRID_HOMEs and one for the ORACLE_HOME.

I asked Oracle and even though it possible to patch only the ORACLE_HOME (and thus have a GRID_HOME in a lower version), it is not recommended.

 

To sum it up:

  1. in 12cR1, apply  PSUs or BPs -- don't mix them
  2. in 12cR2, 18c, 19c : apply RUs or RURs
  3. in 12cR1 Exadata: only BPs
  4. for RAC, apply both the database patch and the GI patch