As the Error shows a fairly good reason why the OPatch can’t proceed installing. To solve this still can take some time when you don’t know the exact place OPatch is searching for this file.
The reason why fuser is used by OPatch is to check if there is any running instance from the current ORACLE_HOME.
I ran into this stupid error while updating an Enterpise Manager Grid Control 10.2.0.1 to 10.2.0.4 on SuSE Enterprise Server 10 SP2 32bit.
When preforming this upgrade, you need to OPatch the database ORACLE_HOME with an one-off patch 4329444.
This is the error returned :
oracle@xxx:/u04/patch_10204/4329444> /u00/oracle/product/10.2.0/db10g/OPatch/opatch apply Invoking OPatch 10.2.0.1.0 Oracle interim Patch Installer version 10.2.0.1.0 Copyright (c) 2005, Oracle Corporation. All rights reserved.. Oracle Home : /u00/oracle/product/10.2.0/db10g Central Inventory : /u00/oracle/oraInventory from : /u00/oracle/product/10.2.0/db10g/oraInst.loc OPatch version : 10.2.0.1.0 OUI version : 10.2.0.1.0 OUI location : /u00/oracle/product/10.2.0/db10g/oui Log file location : /u00/oracle/product/10.2.0/db10g/cfgtoollogs/opatch/opatch-2009_Jan_19_13-15-31-CET_Mon.log Apply Session failed: OPatch cannot find the required command 'fuser' from Property file and your PATH. Property file = 'properties' PATH = 'null' System intact, OPatch will not attempt to restore the system OPatch failed with error code 73
In search of Oracle’s recommendations on this topic, i came across this documentation :
OPatch cannot find system commands like fuser, make
Cause: The OPatch utility uses fuser on UNIX systems to check for active Oracle instances. On certain hp-ux systems, only a super-user can run fuser.
Action: Do the following steps to resolve this problem:
Set /tmp in your PATH.For more information refer to section “Check for System Commands”.
Create an empty file named fuser.
Shut down the Oracle instances.
Run the OPatch utility.
( reference : http://docs.huihoo.com/oracle/docs/B19306_01/em.102/b16227/oui8_opatch.htm#BABJAAIB )
When this did not solve the problem, i found a solution for the problem by creating a symbolic link on my system.
( this has to be done as the root user )
xxx:/ # ln -s /bin/fuser /sbin/fuser
Now i tried my command again with succes !
oracle@xxx:/u04/patch_10204/4329444> /u00/oracle/product/10.2.0/db10g/OPatch/opatch apply Invoking OPatch 10.2.0.1.0 Oracle interim Patch Installer version 10.2.0.1.0 Copyright (c) 2005, Oracle Corporation. All rights reserved.. Oracle Home : /u00/oracle/product/10.2.0/db10g Central Inventory : /u00/oracle/oraInventory from : /u00/oracle/product/10.2.0/db10g/oraInst.loc OPatch version : 10.2.0.1.0 OUI version : 10.2.0.1.0 OUI location : /u00/oracle/product/10.2.0/db10g/oui Log file location : /u00/oracle/product/10.2.0/db10g/cfgtoollogs/opatch/opatch-2009_Jan_19_13-16-39-CET_Mon.log ApplySession applying interim patch '4329444' to OH '/u00/oracle/product/10.2.0/db10g' Invoking fuser to check for active processes. Invoking fuser on "/u00/oracle/product/10.2.0/db10g/bin/oracle" OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u00/oracle/product/10.2.0/db10g') Is the local system ready for patching? Do you want to proceed? [y|n]
