Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.2 to 10.2.0.4IBM 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:
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:
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:
-----------------------------------
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:
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.
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.
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/
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)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10805681/viewspace-626073/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10805681/viewspace-626073/