Opatch Fails to Replace libjox*.a While Applying One Off Patch on AIX Platform

Applies to:

Oracle Server - Enterprise Edition - Version: 9.2.0.2 to 10.2.0.4
IBM AIX Based Systems (64-bit)
Oracle Server Enterprise Edition - Version: 9.2.0.2 to 10.2.0.4

Symptoms

Following error is reported while applying a one off patch on RDBMS Oracle Home running on IBM AIX 64 bit platform.:

Oracle RDBMS 9iR2:
OPatch encounters the following issues during file patching:
The following files had problems with being patched:
1. /u01/apps/oracle/product/9208/lib/libjox9.a
[ Couldn't copy /u01/apps/oracle/product/9208/7592365/files/lib/libjox9.
9.a from /u01/apps/oracle/product/9208/lib. ]

Oracle RDBMS 10gR2:
The following warnings have occurred during OPatch execution:
1) OUI-67124:Copy failed from
'/oradump/patc/7369190/6121268/files/lib/libjox10.a' to '/oracle/product/10.2.
0/asm_1/lib/libjox10.a'...

*Path shown in the above error messages may be different depending upon the customer's setup.

Cause

This is a commonly reported error for AIX platform. Even after all the database instances, listener and other processes are down , there are dead references of some Oracle Home libraries ( like libjox library ) in the memory.

Although, fuser user command might show that there are no processes locking this library, OPatch may still fail to overwrite this library because of the dead memory references in AIX

Running /usr/sbin/slibclean as root is used to resolve this condition, but sometimes the file is still locked in memory after running slibclean.

Solution

Please perform. following action plans until you get success:

NOTE: Restore Process
-----------------------------------
Whenever the error  is encountered, restore / rollback the failed patching attempt as indicated by OPatch session messages and continue with the alternatives given in subsequent steps.


1. Sometimes if you have not run slibclean script, the error is reported. So run slibclean script. before applying the patch:

a) Shutdown all the databases and listeners running from this Oracle Home.
b) Run /usr/sbin/slibclean script. as a root user.
c) Apply the patch

If the patch is applied successfully then no need to follow any further action plan. If not, execute the Restore Process and proceed with alternatives given in subsequent steps.

2. Rerun the slibclean script. Rename the library and then rename it back to original. The following action plan might be helpful in releasing the dead memory references for the concerned library.  

a) Shutdown all the databases and listeners running from this Oracle Home.
b) Run /usr/sbin/slibclean script. as a root user.
c) Rename the file and immediately rename it back. This will help in  
  releasing the lock from this file:

     Oracle 9iR2:
     $ cd $ORACLE_HOME/lib
     $ mv libjox9.a libjox9.a.orig
     $ mv libjox9.a.orig libjox9.a

     Oracle 10gR2:
     $ cd $ORACLE_HOME/lib
     $ mv libjox10.a libjox10.a.orig
     $ mv libjox10.a.orig libjox10.a

d) Apply the patch

If the patch is applied successfully then no need to follow any further action plan. If not, execute the Restore Process and proceed with alternatives given in subsequent steps.


3. Even after performing above steps if the issue is repeated then follow the following action plan which should solve the issue in any case.
a) Shutdown all the databases and listeners running from this Oracle Home.

b) Run /usr/sbin/slibclean script. as a root user.

c) Apply the Patch.

  Now if the error is reported, opatch will give you following prompt:
  Do you want to stop the patch installation Y/N:
  Here do not enter anything and keep the session waiting.

d) Open a new session as root user . Execute slibclean.

e) Now open a new session as the oracle user.

f) Perform the manual COPY operation which opatch is trying to perform. during patch application. Select from either of the action plan provided below, depending on your release

Oracle 9iR2/10gR1

   $ mv $ORACLE_HOME/lib/libjox9.a $ORACLE_HOME/lib/libjox9.a.old

   $ cp  Patch Staging Area /files/lib/libjox9.a $ORACLE_HOME/lib/


NOTE :
In case of 9iR2 and 10gR1 environments if previous CPU patch is already present, the errors may also be encountered during rolling back the previous CPU.

Sample Error
------------

Patch encounters the following file roll-back issues:
    
The following files had problems with being restored:
    1.  /optq/oracle/rdbms/9.2.0/lib/libjox9.a
    
    Replying 'Y' will terminate the patch roll-back immediately. It WILL NOT restore any updates that
    have been performed to this point. It WILL NOT update the inventory.
    Replying 'N' will update the inventory showing the patch has been removed.
    
    Do you want  to STOP?
    Please respond Y|N >


Solution
---------
  $ mv $ORACLE_HOME/lib/libjox9.a $ORACLE_HOME/lib/libjox9.a.old 
  $ cp $ORACLE_HOME/.patch_storage/6864078/lib/libjox9.a_pre_6864078 $ORACLE_HOME/lib/libjox9.a

In the above example shown, "6864078" is the existing patch which is being rolled back.


Oracle 10gR2

    $ mv $ORACLE_HOME/lib/libjox10.a $ORACLE_HOME/lib/libjox10.a.old
    $ cp  Patch Staging Area /files/lib/libjox10.a $ORACLE_HOME/lib/


g) Once this Manual COPY is completed, go back to the original session 
   where patching session was in waiting state.

Use the appropriate input ( Y/N ) which continues the Patching.


Refer to the following note to know if there are any locks in the libraries on AIX:
Note 739963.1 Using AIX commands genld, genkld and slibclean to avoid library file locking errors (libjox)

Please note that renaming the libjox*.a file and applying the patch should not be followed as a solution to this issue. Because if you do this, Opatch will not be able to take a backup of this file before  applying the patch and in future if you rollback this one off patch, it will not be a successful rollback. So always follow one of the action plan given above.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10805681/viewspace-626073/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10805681/viewspace-626073/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值