In the evening to patch several test libraries, stop listening and instances to see the process has no Oracle, so execute opatch apply. But the executive reported the following error:
$ opatch applyoracle interim patch installer version 11.2.0.3.12copyright (c) 2017, oracle corporation. all rights reserved. Oracle home : /opt/oracle/app/oracle/product/11.2.4/db_ 1central inventory : /opt/oracle/app/oracle/orainventory from : /opt/oracle/app/oracle/product/11.2.4/db_1/ orainst.locopatch version : 11.2.0.3.12oui version : 11.2.0.4.0log file location : /opt/oracle/app/oracle/ Product/11.2.4/db_1/cfgtoollogs/opatch/opatch2017-03-29_00-16-10am_1.logverifying environment and performing prerequisite checks ... prerequisite check "Checkactivefilesandexecutables" failed. The details are:following execUtables are active :/opt/oracle/app/oracle/product/11.2.4/db_1/lib/libclntsh.so.11.1utilsession failed: Prerequisite check "Checkactivefilesandexecutables" failed. log file location: /opt/oracle/app/oracle/product/11.2.4/db_1/cfgtoollogs/opatch/ Opatch2017-03-29_00-16-10am_1.log
The related process for Oracle is not already in progress
[bbtst3s [email protected] /home/oracle]$ ps -ef |grep ora oracle 8608 8606 0 02:04:59 ? 0:00 sshd: [email protected]/2 oracle 8796 19274 0 02:05:24 ? 0:00 sleep 15 oracle 19274 1 3 dec 20 ? 967:38 /bin/sh ./oswatcher.sh 15 192 oracle 8825 8610 0 02:05:35 pts/2 0:00 grep ora oracle 8668 19319 0 02:05:03 ? 0:00 sleep 60 oracle 8824 8610 2 02:05:35 pts/2 0:00 ps -ef oracle 8610 8608 0 02:04:59 pts/2 0:00 -ksh oracle 19319 19274 0 Dec 20 ? 23:31 /bin/sh ./oswatcherfm.sh 192 /opt/bboss/tst3/oracle/ arch/oswatcher/oswbb/archive root 8606 21662 0 02:04:56  ?         0:00 SSHD: ORACLE [PRIV]
Then use Fuser to view
$ fuser/opt/oracle/app/oracle/product/11.2.4/db_1/lib/libclntsh.so.11.1/opt/oracle/app/oracle/product/11.2.4/db _1/lib/libclntsh.so.11.1:29888m
See the file is actually occupied, but do not know which process is occupied by, and then use the lsof command
$./lsof/opt/oracle/app/oracle/product/11.2.4/db_1/lib/libclntsh.so.11.1
There was no result after the execution, so there was no way to check it.
So consulted colleague, he uses the root user to execute the lsof command, and only specify to the top level of the directory to check
# lsof/opt COMMAND PID USER FD TYPE DEVICE size/off NODE nameraterserv 29888 rate3 mem REG 64,0x6 10800648 85874/opt/oracle/app/oracle/product/11.2.4/db_1/lib/libnnz11.soraterserv 29888 rate3 mem REG 64,0x6 1218 75400 324102/opt/oracle/app/oracle/product/11.2.4/db_1/lib/libclntsh.so.11.1
From the above output can be seen that there is a process is in use, the process number is 29888.
Check the 29888-pair process name again.
# Ps-ef |grep 29888
Find a service that is an application, and after communicating with the test, this process can kill directly, so
Kill-9 29888
Execute Opatch apply successfully again.
This article is from the "DBA fighting!" blog, so be sure to keep this source http://hbxztc.blog.51cto.com/1587495/1911276
Oracle Hit patch error prerequisite Check "Checkactivefilesandexecutables" failed.