Oracle Patch Level Differences – Oracle Enterprise Manager vs DBA_REGISTRY_HISTORY

oracleoracle-11g-r2

There is a difference in the patch level that I am seeing on my Oracle database. On the Oracle Enterprise Manager, it shows that it is patched up to .7 but on DBA_REGISTRY_HISTORY it does not show any of the patches.

APPLY   SERVER  11.2.0.4    0   Patchset 11.2.0.2.0 PSU
APPLY   SERVER  11.2.0.4    0   Patchset 11.2.0.2.0 PSU

Is this a common occurrence?

Thank you

Best Answer

The installation of a PSU is not complete without the execution of the postinstall script. Opatch works at file level, it replaces/relinks files in the Oracle home. Changes inside the database are performed by running the postinstall script. Sometimes I see DBAs forget this step.

The postinstall script maintains the SYS.REGISTRY$ table (on which the DBA_SERVER_REGISTRY view is built) with the actual patch versions.

In 11.2, you run the postinstall script as (stated in the README):

sqlplus / as sysdba
@?/rdbms/admin/catbundle psu apply

This populates the above table (and so the view) with the actual data. When installing a PSU, this script must be executed in all databases running from the affected Oracle Home.

In most of the cases, skipping the postinstall script does not cause any problem, so mostly this goes on unnoticed. But there are exceptions, for example I have seen a database throwing ORA-07445 errors during the configuration of GoldenGate, because the postinstall script was not executed after the installation of the PSU.

Starting with 12c, the postinstall script is executed as:

export ORACLE_SID=orcl
cd $ORACLE_HOME/OPatch
./datapatch