Friday, January 1, 2010

OPatch - Prerequisite check "CheckRollbackable" on auto-rollback patches failed.

Hello Friends,

Today, I faced the following OPATCH issue when I tried to apply the patch 8450774.

/oracle/product/10.2.0.4/TEST01/PATCHES/8450774 > opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc
Invoking OPatch 10.2.0.4.3

Oracle Interim Patch Installer version 10.2.0.4.3
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracle Home       : /oracle/product/10.2.0.4/TEST01
Central Inventory : /oracle/product/10.2.0.4/TEST01/oraInventory
   from           : /oracle/product/10.2.0.4/TEST01/oraInst.loc
OPatch version    : 10.2.0.4.3
OUI version       : 10.2.0.4.0
OUI location      : /oracle/product/10.2.0.4/TEST01/oui
Log file location : /oracle/product/10.2.0.4/TEST01/cfgtoollogs/opatch/opatch2009-12-07_09-55-44AM.log

ApplySession applying interim patch '8450774' to OH '/oracle/product/10.2.0.4/TEST01'
Interim patch 8450774 is a superset of the patch(es) [  7263055 ] in OH /oracle/product/10.2.0.4/TEST01
OPatch will rollback the subset patches and apply the given patch.

Running prerequisite checks...
Prerequisite check "CheckRollbackable" on auto-rollback patches failed.
The details are:

Patch 7263055:
Archive Action: Source file "/oracle/product/10.2.0.4/TEST01/.patch_storage/7263055_Jul_21_2008_01_37_17/files/lib/libserver10.a/kwqmn.o" does not exist.
'oracle.rdbms, 10.2.0.4.0': Cannot update file '/oracle/product/10.2.0.4/TEST01/lib/libserver10.a' with '/kwqmn.o'
Archive Action: Source file "/oracle/product/10.2.0.4/TEST01/.patch_storage/7263055_Jul_21_2008_01_37_17/files/lib/libserver10.a/knlp.o" does not exist.
'oracle.rdbms, 10.2.0.4.0': Cannot update file '/oracle/product/10.2.0.4/TEST01/lib/libserver10.a' with '/knlp.o'
Archive Action: Source file "/oracle/product/10.2.0.4/TEST01/.patch_storage/7263055_Jul_21_2008_01_37_17/files/lib/libserver10.a/kwqa.o" does not exist.
'oracle.rdbms, 10.2.0.4.0': Cannot update file '/oracle/product/10.2.0.4/TEST01/lib/libserver10.a' with '/kwqa.o'
Archive Action: Source file "/oracle/product/10.2.0.4/TEST01/.patch_storage/7263055_Jul_21_2008_01_37_17/files/lib/libserver10.a/kwqit.o" does not exist.
'oracle.rdbms, 10.2.0.4.0': Cannot update file '/oracle/product/10.2.0.4/TEST01/lib/libserver10.a' with '/kwqit.o'
Copy Action: Source file "/oracle/product/10.2.0.4/TEST01/.patch_storage/7263055_Jul_21_2008_01_37_17/files/rdbms/admin/prvtaqds.plb" does not exist.
'oracle.rdbms, 10.2.0.4.0': Cannot copy file from 'prvtaqds.plb' to '/oracle/product/10.2.0.4/TEST01/rdbms/admin/prvtaqds.plb'

ApplySession failed during prerequisite checks: Prerequisite check "CheckRollbackable" on auto-rollback patches failed.
System intact, OPatch will not attempt to restore the system
--------------------------------------------------------------------------------
The following warnings have occurred during OPatch execution:
1) OUI-67078:Interim patch 8450774 is a superset of the patch(es) [  7263055 ] in OH /oracle/product/10.2.0.4/TEST01
--------------------------------------------------------------------------------

OPatch failed with error code 74
 db-node1 TEST01
/oracle/product/10.2.0.4/TEST01/PATCHES/8450774 >


This issue is because, opatch is trying to rollback the existing patch ( because of confilct issue ) from backup area i.e $ORACLE_HOME/.patch_storage. But somehow, the backup of that particular patch is not there. So, OPatch is failing with this error message.

So, When I checked the URL " http://download.oracle.com/docs/cd/B14099_19/manage.1012/b16227/oui8_opatch.htm ", I came to know the option " -no_sysmod ".no_sysmod used to Specifies that the OPatch utility need not update the files in the system. It will only update the inventory.

/oracle/product/10.2.0.4/TEST01/PATCHES/8450774 > opatch rollback -id 7263055 -no_sysmod -invPtrLoc $ORACLE_HOME/oraInst.loc
Invoking OPatch 10.2.0.4.3

Oracle Interim Patch Installer version 10.2.0.4.3
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracle Home       : /oracle/product/10.2.0.4/TEST01
Central Inventory : /oracle/product/10.2.0.4/TEST01/oraInventory
   from           : /oracle/product/10.2.0.4/TEST01/oraInst.loc
OPatch version    : 10.2.0.4.3
OUI version       : 10.2.0.4.0
OUI location      : /oracle/product/10.2.0.4/TEST01/oui
Log file location : /oracle/product/10.2.0.4/TEST01/cfgtoollogs/opatch/opatch2009-12-07_10-02-14AM.log

RollbackSession rolling back interim patch '7263055' from OH '/oracle/product/10.2.0.4/TEST01'

Running prerequisite checks...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Skip patching component oracle.rdbms, 10.2.0.4.0 and its actions.
The actions are reported here, but are not performed.

Deleting "lib/libserver10.a/kwqmn.o" from archive "/oracle/product/10.2.0.4/TEST01/lib/libserver10.a"
ArchiveAction::rollback() failed: File is not present in backup area so kwqmn.ois not modified
Deleting "lib/libserver10.a/knlp.o" from archive "/oracle/product/10.2.0.4/TEST01/lib/libserver10.a"
ArchiveAction::rollback() failed: File is not present in backup area so knlp.ois not modified
Deleting "lib/libserver10.a/kwqa.o" from archive "/oracle/product/10.2.0.4/TEST01/lib/libserver10.a"
ArchiveAction::rollback() failed: File is not present in backup area so kwqa.ois not modified
Deleting "lib/libserver10.a/kwqit.o" from archive "/oracle/product/10.2.0.4/TEST01/lib/libserver10.a"
ArchiveAction::rollback() failed: File is not present in backup area so kwqit.ois not modified
Running make for target ioracle
RollbackSession removing interim patch '7263055' from inventory

OPatch succeeded.
 db-node1 TEST01
/oracle/product/10.2.0.4/TEST01/PATCHES/8450774 >


So, I have rollback the patch manually with using option called " -no_sysmod " and continued with main patch.

3 comments:

  1. Thank you for posting this! I was having the same problem this morning on a production server. You saved the day!

    ReplyDelete
  2. Thanks, It helped me in crucial situation. Keep writing such beautiful article.

    ReplyDelete