Skip to Main Content

Breadcrumb

Datapatch auf CDB Level wurde unterbrochen

Ausgangssituation:

PSU wurde im Oracle Home eingespielt. Beim Einspielen auf CDB Ebene passiert ein Missgeschick – datatpatch.pl wurde abgebrochen.

Was nun?

Wenn wir kontrollieren, wie der Patch-Status in der Datenbank abgebildet ist, dann sehen wir, dass die Installation des PSU in der DB nicht abgeschlossen wurde:

select patch_id, patch_uid, version, status, bundle_series, description from dba_registry_sqlpatch;                        
 
  PATCH_ID  PATCH_UID VERSION              STATUS          BUNDLE_SERIES                  DESCRIPTION
---------- ---------- -------------------- --------------- ------------------------------ ----------------------------------------------------------------------------------------------------
  24917972   20801908 12.1.0.2             END                                            Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)
  24732088   20937845 12.1.0.2             BEGIN           DBBP                           DATABASE BUNDLE PATCH 12.1.0.2.170117
  19790972   19744553 12.1.0.2             END             DBBP                           DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE
  24917972   20801908 12.1.0.2             SUCCESS                                        Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)
  19790972   19744553 12.1.0.2             SUCCESS                                        DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE
 

Patch nochmals installieren?

So ausfallsicher ist datapatch.pl nun auch wieder nicht. Wenn wir das datapatch.pl nochmal auf die gleiche Datenbank loslassen, erfahren wir:

Current state of SQL patches:
Patch 19790972 (DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE):
  Installed in the binary registry and CDB$ROOT PDB$SEED
Patch 24917972 (Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)):
  Installed in the binary registry and CDB$ROOT PDB$SEED
Bundle series DBBP:
  ID 170117 in the binary registry and ID 170117 in PDB CDB$ROOT, ID 170117 in PDB PDB$SEED

Ein Rollback des Patches ignoriert das datapatch.pl ebenfalls. Wir stecken also fest.

Den Druck auf Oracle erhöhen

Es bleibt uns jetzt nur noch die Möglichkeit, datapatch.pl dazu zu zwingen, die aktuellen Patches einzuspielen. Möglich ist das mit:

./datapatch -apply 24732088,24917972,19790972 -force -verbose

Wie wir jetzt sehen können, sind alle Patches im Status „SUCCESS“

select patch_id, patch_uid, version, status, bundle_series, description, ACTION from dba_registry_sqlpatch order by 1

  PATCH_ID  PATCH_UID VERSION              STATUS          BUNDLE_SERIES                  DESCRIPTION                                                                                          ACTION

---------- ---------- -------------------- --------------- ------------------------------ ---------------------------------------------------------------------------------------------------- ---------------

  19790972   19744553 12.1.0.2             END             DBBP                           DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE                                       APPLY

  19790972   19744553 12.1.0.2             SUCCESS                                        DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE                                       APPLY

  19790972   19744553 12.1.0.2             SUCCESS                                        DBMS_STATS CAUSING LIBRARY CACHE LOCKS WITH SUBPARTITION TABLE                                       APPLY

  24732088   20937845 12.1.0.2             BEGIN           DBBP                           DATABASE BUNDLE PATCH 12.1.0.2.170117                                                                APPLY

  24732088   20937845 12.1.0.2             WITH ERRORS     DBBP                           DATABASE BUNDLE PATCH 12.1.0.2.170117                                                                APPLY

  24732088   20937845 12.1.0.2             SUCCESS         DBBP                           DATABASE BUNDLE PATCH 12.1.0.2.170117                                                                APPLY

  24732088   20937845 12.1.0.2             SUCCESS         DBBP                           DATABASE BUNDLE PATCH 12.1.0.2.170117                                                                APPLY

  24917972   20801908 12.1.0.2             END                                            Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)                                      APPLY

  24917972   20801908 12.1.0.2             SUCCESS                                        Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)                                      APPLY

  24917972   20801908 12.1.0.2             SUCCESS                                        Database PSU 12.1.0.2.170117, Oracle JavaVM Component (JAN2017)                                      APPLY


10 rows selected.

Jetzt wird der PSU auch in der Datenbank als erfolgreich installiert ausgeweisen.