使用OPATCH_DEBUG环境变量调试Opatch工具

我们在使用opatch数据库补丁管理工具时可能碰到这样那样的问题,那么opatch工具是否存在一些调试选项以便我们了解更多的信息呢?同OUI工具一样,opatch存在一个debug选项,使用该选项我们仅需要设置OPATCH_DEBUG环境变量为TRUE就可以了,如:

[oracle@rh2 OPatch]$ export OPATCH_DEBUG=TRUE

[oracle@rh2 OPatch]$ ./opatch lsinventory
ORACLE_HOME is set at OPatch invocation
Machine Info: Linux rh2.oracle.com 2.6.32-100.0.19.el5 #1 
SMP Fri Sep 17 17:51:41 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

_osArch is i386
_javaVMSpecVersion is 1.0
_javaVMSpecVendor is Sun Microsystems Inc.
_javaVMSpecName is Java Virtual Machine Specification
_javaVMVendor is Sun Microsystems Inc.
_javaJRESpecVersion is 1.4
_javaJRESpecVendor is Sun Microsystems Inc.
_javaJRESpecName is Java Platform API Specification
_javaSupportedClassVersion is 48.0
OPatch compiled with major version: 0, minor version: 0
_osArch (from OCM API) is i386
/s01/db_1/jdk/bin/java  -mx96m -cp ./ocm/lib/emocmutl.jar:./ocm/lib/emocmclnt.jar:/s01/db_1/oui/jlib/OraInstaller.jar:
/s01/db_1/oui/jlib/OraPrereq.jar:/s01/db_1/oui/jlib/share.jar:/s01/db_1/oui/jlib/srvm.jar:
/s01/db_1/oui/jlib/orai18n-mapping.jar:/s01/db_1/oui/jlib/xmlparserv2.jar:./jlib/opatch.jar:./jlib/opatchutil.jar:
./jlib/opatchprereq.jar:./jlib/opatchactions.jar:./jlib/opatchext.jar:
./jlib/opatchfmw.jar: -DOPatch.ORACLE_HOME=/s01/db_1 -DOPatch.DEBUG=true 
-DOPatch.RUNNING_DIR=. -DOPatch.MW_HOME= -DOPatch.WL_HOME= 
-DOPatch.COMMON_COMPONENTS_HOME=   oracle/opatch/OPatch lsinventory

/* 以上debug信息可以说明opatch工具需要用到Oracle软件自带的JRE */

Invoking OPatch 11.2.0.1.3

Oracle Interim Patch Installer version 11.2.0.1.3
Copyright (c) 2010, Oracle Corporation.  All rights reserved.

OPatchSession::parse() on "lsinventory",

Argument is "lsinventory"
 Add commands for Help
 add command "apply"
 add command "napply"
 add command "rollback"
 add command "nrollback"
 add command "lsinventory"
 add command "lsinv"
 add command "query"
 add command "util"
 add command "prereq"
 add command "version"
 add command "-help"
 add command "-help -fmw"
 Add supported commands for validation
 add command "apply"
 add command "rollback"
 add command "lsinv"
 add command "lsinventory"
 add command "query"
 add command "util"
 add command "prereq"
 add command "version"
 add command "napply"
 add command "nrollback"
 add command "-fmw"
 Not a command that can be mapped to Util Session.
CmdLineParser::initRuntimeOptions()
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$StringArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$StringArguments
 There are 7 fields defined in this class.
   adding option "fp"
   adding option "dp"
   adding option "fr"
   adding option "dr"
   adding option "mp"
   adding option "phbasedir"
   adding option "phbasefile"
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$BooleanArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$BooleanArguments
 There are 2 fields defined in this class.
   adding option "delay_link"
   adding option "cmd_end"
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$IntegerArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$IntegerArguments
 There are 2 fields defined in this class.
   adding option "integerarg1"
   adding option "integerarg2"
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$StringtegerArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$StringtegerArguments
 There are 5 fields defined in this class.
   adding option "stringtegerarg1"
   adding option "stringtegerarg2"
   adding option "ps"
   adding option "mp"
   adding option "xmlinput"
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$DoubleArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$DoubleArguments
 There are 2 fields defined in this class.
   adding option "doublearg1"
   adding option "doublearg2"
 Checking on class oracle.opatch.opatchutil.CmdLineOptions$RawStringArguments
 Get list of fields defined in the class oracle.opatch.opatchutil.CmdLineOptions$RawStringArguments
 There are 1 fields defined in this class.
   adding option "cmd"
CmdLineHelper::loadRuntimeOption() for Class "oracle.opatch.opatchutil.OUSession"
  initializing String option 0, fp
  initializing String option 1, dp
  initializing String option 2, fr
  initializing String option 3, dr
  initializing String option 4, mp
  initializing String option 5, phbasedir
  initializing String option 6, phbasefile
 done init. String arg.
  initializing Boolean option 0, delay_link
  initializing Boolean option 1, cmd_end
 done init. Boolean arg.
  initializing Integer option 0, integerarg1
  initializing Integer option 1, integerarg2
 done init. Integer arg.
  initializing StringTeger option 0, stringtegerarg1
  initializing StringTeger option 1, stringtegerarg2
  initializing StringTeger option 2, ps
  initializing StringTeger option 3, mp
  initializing StringTeger option 4, xmlinput
 done init. SringTeger arg.
  initializing Double option 0, doublearg1
  initializing Double option 1, doublearg2
 done init. Double arg.
  initializing RawString option 0, cmd
 done init. RawString arg.
CmdLineHelper::loadRuntimeOption() for Class "oracle.opatch.opatchutil.OUSession", done.
CmdLineParser::initRuntimeOptions()
 Checking on class oracle.opatch.opatchprereq.CmdLineOptions$StringArguments
 Get list of fields defined in the class oracle.opatch.opatchprereq.CmdLineOptions$StringArguments
 There are 3 fields defined in this class.
   adding option "phbasedir"
   adding option "patchids"
   adding option "phbasefile"
 Checking on class oracle.opatch.opatchprereq.CmdLineOptions$BooleanArguments
 Get list of fields defined in the class oracle.opatch.opatchprereq.CmdLineOptions$BooleanArguments
 There are 2 fields defined in this class.
   adding option "booleanarg1"
   adding option "booleanarg2"
 Checking on class oracle.opatch.opatchprereq.CmdLineOptions$IntegerArguments
 Get list of fields defined in the class oracle.opatch.opatchprereq.CmdLineOptions$IntegerArguments
 There are 2 fields defined in this class.
   adding option "integerarg1"
   adding option "integerarg2"
 Checking on class oracle.opatch.opatchprereq.CmdLineOptions$StringtegerArguments
 Get list of fields defined in the class oracle.opatch.opatchprereq.CmdLineOptions$StringtegerArguments
 There are 2 fields defined in this class.
   adding option "stringtegerarg1"
   adding option "stringtegerarg2"
 Checking on class oracle.opatch.opatchprereq.CmdLineOptions$DoubleArguments
 Get list of fields defined in the class oracle.opatch.opatchprereq.CmdLineOptions$DoubleArguments
 There are 2 fields defined in this class.
   adding option "doublearg1"
   adding option "doublearg2"
CmdLineHelper::loadRuntimeOption() for Class "oracle.opatch.opatchprereq.PQSession"
  initializing String option 0, phbasedir
  initializing String option 1, patchids
  initializing String option 2, phbasefile
 done init. String arg.
  initializing Boolean option 0, booleanarg1
  initializing Boolean option 1, booleanarg2
 done init. Boolean arg.
  initializing Integer option 0, integerarg1
  initializing Integer option 1, integerarg2
 done init. Integer arg.
  initializing StringTeger option 0, stringtegerarg1
  initializing StringTeger option 1, stringtegerarg2
 done init. SringTeger arg.
  initializing Double option 0, doublearg1
  initializing Double option 1, doublearg2
 done init. Double arg.
CmdLineHelper::loadRuntimeOption() for Class "oracle.opatch.opatchprereq.PQSession", done.
 reqVer For using getEnv() = 10.2.0.4.0
 curVer = 10.2.0.4.0
 Current Ver later than required? :false
 Current Ver equals required? :true
Checking EMDROOT using OUI's API...
CmdLineParser.processOPatchProperties() begins
CmdLineParser.processOPatchProperties() ends
OUIReplacer::runEnvScript() called
SystemCall:RuntimeExec(cmds, runDir): GOING to start thread to read Input Stream
SystemCall:RuntimeExec(cmds, runDir): Started thread to read Input Stream
SystemCall:RuntimeExec(cmds, runDir): GOING to start thread to read Error Stream
ReaderThread::run(): Stream InputStream about to be read
SystemCall:RuntimeExec(cmds, runDir): Started thread to read Error Stream
SystemCall:RuntimeExec(cmds, runDir): GOING into process.waitFor()
ReaderThread::run(): Stream ErrorStream about to be read
ReaderThread::run(): Stream ErrorStream reading completed
ReaderThread::run(): Stream InputStream reading completed
SystemCall:RuntimeExec(cmds, runDir): process.waitFor() is OVER
SystemCall:RuntimeExec(cmds, runDir): Error stream thread joined successfully
SystemCall:RuntimeExec(cmds, runDir): Input stream thread joined successfully
OUIReplacer::setKeyValue() called
OPatchSession::main()
Environment:
   OPatch.ORACLE_HOME=/s01/db_1
   oracle.installer.invPtrLoc=/etc/oraInst.loc
   oracle.installer.oui_loc=/s01/db_1/oui
   oracle.installer.library_loc=/s01/db_1/oui/lib/linux
   oracle.installer.startup_location=/s01/db_1/oui
   OPatch.PLATFORM_ID=
   os.name=Linux
   OPatch.NO_FUSER=
   OPatch.SKIP_VERIFY=null
   OPatch.SKIP_VERIFY_SPACE=null
   oracle.installer.clusterEnabled=false
   TRACING.ENABLED=TRUE
   TRACING.LEVEL=2
   OPatch.DEBUG=true
   OPATCH_VERSION=11.2.0.1.3
   Bundled OPatch Property File=properties
   Minimum OUI version: 10.2
   OPatch.PATH=/s01/db_1/bin:/bin:/usr/bin:/sbin:/usr/sbin
Stand-Alone home : false
   OPatch.MW_HOME=
   OPatch.WL_HOME=
   OPatch.COMMON_COMPONENTS_HOME=

Environment:
   OPatch.ORACLE_HOME=/s01/db_1
   oracle.installer.invPtrLoc=/etc/oraInst.loc
   oracle.installer.oui_loc=/s01/db_1/oui
   oracle.installer.library_loc=/s01/db_1/oui/lib/linux
   oracle.installer.startup_location=/s01/db_1/oui
   OPatch.PLATFORM_ID=
   os.name=Linux
   OPatch.NO_FUSER=
   OPatch.SKIP_VERIFY=null
   OPatch.SKIP_VERIFY_SPACE=null
   oracle.installer.clusterEnabled=false
   TRACING.ENABLED=TRUE
   TRACING.LEVEL=2
   OPatch.DEBUG=true
   OPATCH_VERSION=11.2.0.1.3
   Bundled OPatch Property File=properties
   Minimum OUI version: 10.2
   OPatch.PATH=/s01/db_1/bin:/bin:/usr/bin:/sbin:/usr/sbin
Stand-Alone home : false
   OPatch.MW_HOME=
   OPatch.WL_HOME=
   OPatch.COMMON_COMPONENTS_HOME=

Oracle Home       : /s01/db_1
Central Inventory : /s01/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.1.3
OUI version       : 10.2.0.4.0
OUI location      : /s01/db_1/oui
Log file location : /s01/db_1/cfgtoollogs/opatch/opatch2011-05-06_23-38-48PM.log

Patch history file: /s01/db_1/cfgtoollogs/opatch/opatch_history.txt

OUISessionManager::instantiate()
lockCentralInventory(): OUISessionManager::lockCentralInventory() will retry 0 times with 120-second interval to get an Inventory lock.
OUISessionManager::lockCentralInventory() try round # 1
OUISessionManager::setupSession()
OUISessionManager::setupSession() instantiates a OUIInventorySession obj.
OUISessionManager::setupSession() init. the session
OUISessionManager::setupSession() sets up READ-ONLY session
OUISessionManager::setupSession() done
OUISessionManager::lockCentralInventory() set up session OK
 reqVer = 10.2
 curVer = 10.2.0.4.0
 Current Ver later than required? :true
 Current Ver equals required? :false
OracleHomeInventory::createInventoryObj()
OracleHomeInventory::createInventoryObj() gets OUIInventorySession object
Locker::lock()
   calling lockCentralInventory()
OUISessionManager::getInventorySession()
Caller Details: 
        Caller Name : OPatch    Caller Version : 11.2.0.1.3     Requested Read-only access : true       Oracle Home : /s01/db_1
OUISessionManager::register()
Registering the caller : OPatch
OracleHomeInventory::createInventoryObj() gets OUIInstallAreaControl object
OracleHomeInventory::createInventoryObj() gets OUIInstallInventory object
OracleHomeInventory::createInventoryObj() gets OUIOracleHomeInfo object
OracleHomeInventory::createInventoryObj() construction done
LsInventory::loadAndPrintInventory()
Retrieving inventory from Oracle Home...
OracleHomeInventory::load()
OracleHomeInventory::load() gets a Vector of all product entries
OracleHomeInventory::load() gets a Vector of all one-off entries
OracleHomeInventory::load() begins to process raw data from OUI to build up OPatch primitive classes
PatchObject(oracleHomePath,patchID)
PatchObject::PatchObject looks for the actions file /s01/db_1/inventory/oneoffs/9352164/etc/config/actions.xml
PatchObject::PatchObject looks for the inventory file /s01/db_1/inventory/oneoffs/9352164/etc/config/inventory.xml
PatchObject::PatchObject looks for the deploy file /s01/db_1/inventory/oneoffs/9352164/etc/config/deploy.xml
PatchObject::PatchObject looks for the interview file /s01/db_1/inventory/oneoffs/9352164/etc/config/sequence.xml
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9352164/etc/config/deploy.xml does not exist
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9352164/etc/config/deploy.xml unreadable
PatchObject::createPatchObject() interview file /s01/db_1/inventory/oneoffs/9352164/etc/config/sequence.xml does not exist or is not readable
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9352164/etc/config/sequence.xml unreadable
parserXMLFile : start
parserXMLFile : start
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/rdbms/jlib/qsma.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/rdbms/jlib/qsma.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/rdbms/jlib/qsma.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/rdbms/jlib/CDC.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emDB.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emjsp.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emjsp.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emjsp.jar
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::processJarActionPaths()
JarAction::processJarActionPaths(): return true for successful parsing Jar path
JarAction::getCompleteFileListPath() returns :ORACLE_HOME/sysman/jlib/emjsp.jar
PatchObject(oracleHomePath,patchID)
PatchObject::PatchObject looks for the actions file /s01/db_1/inventory/oneoffs/9654991/etc/config/actions.xml
PatchObject::PatchObject looks for the inventory file /s01/db_1/inventory/oneoffs/9654991/etc/config/inventory.xml
PatchObject::PatchObject looks for the deploy file /s01/db_1/inventory/oneoffs/9654991/etc/config/deploy.xml
PatchObject::PatchObject looks for the interview file /s01/db_1/inventory/oneoffs/9654991/etc/config/sequence.xml
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9654991/etc/config/deploy.xml does not exist
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9654991/etc/config/deploy.xml unreadable
PatchObject::createPatchObject() interview file /s01/db_1/inventory/oneoffs/9654991/etc/config/sequence.xml does not exist or is not readable
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9654991/etc/config/sequence.xml unreadable
parserXMLFile : start
parserXMLFile : start
PatchObject(oracleHomePath,patchID)
PatchObject::PatchObject looks for the actions file /s01/db_1/inventory/oneoffs/7527908/etc/config/actions.xml
PatchObject::PatchObject looks for the inventory file /s01/db_1/inventory/oneoffs/7527908/etc/config/inventory.xml
PatchObject::PatchObject looks for the deploy file /s01/db_1/inventory/oneoffs/7527908/etc/config/deploy.xml
PatchObject::PatchObject looks for the interview file /s01/db_1/inventory/oneoffs/7527908/etc/config/sequence.xml
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/7527908/etc/config/deploy.xml does not exist
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/7527908/etc/config/deploy.xml unreadable
PatchObject::createPatchObject() interview file /s01/db_1/inventory/oneoffs/7527908/etc/config/sequence.xml does not exist or is not readable
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/7527908/etc/config/sequence.xml unreadable
parserXMLFile : start
parserXMLFile : start
PatchObject(oracleHomePath,patchID)
PatchObject::PatchObject looks for the actions file /s01/db_1/inventory/oneoffs/9696904/etc/config/actions.xml
PatchObject::PatchObject looks for the inventory file /s01/db_1/inventory/oneoffs/9696904/etc/config/inventory.xml
PatchObject::PatchObject looks for the deploy file /s01/db_1/inventory/oneoffs/9696904/etc/config/deploy.xml
PatchObject::PatchObject looks for the interview file /s01/db_1/inventory/oneoffs/9696904/etc/config/sequence.xml
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9696904/etc/config/deploy.xml does not exist
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9696904/etc/config/deploy.xml unreadable
PatchObject::createPatchObject() interview file /s01/db_1/inventory/oneoffs/9696904/etc/config/sequence.xml does not exist or is not readable
PatchObject::createPatchObject() deploy actions file /s01/db_1/inventory/oneoffs/9696904/etc/config/sequence.xml unreadable
parserXMLFile : start
parserXMLFile : start
LsInventory::init()
LsInventorySession::process(): creates an output file /s01/db_1/cfgtoollogs/opatch/lsinv/lsinventory2011-05-06_23-38-48PM.txt
LsInventory::init() returns
Lsinventory Output file location : /s01/db_1/cfgtoollogs/opatch/lsinv/lsinventory2011-05-06_23-38-48PM.txt

--------------------------------------------------------------------------------
[Rules: should lock OH and Central Inv.= true, read from OUI= true, write to OUI= true, read from system= true, write to system= true, -all= false, -xml= false, -match= false, -patch= false, -detail= false, print patch = true, print all prods = false, print top-level prod = true, print detail = false, print by-bugs fixed = false ]
Installed Top-level Products (2): 

Oracle Database 10g                                                  10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
There are 2 products installed in this Oracle Home.

Interim patches (4) :

OneOffEntry::getBugIDsFixed()
OneOffEntry::getBugIDsFixed() returns 3 bugs.
Patch  9696904      : applied on Fri May 06 22:26:37 CST 2011
Unique Patch ID:  12575150
   Created on 10 May 2010, 23:22:02 hrs PST8PDT
   Bugs fixed:
     7025450, 8575528, 6904068
   This patch overlays patches:
     9352164
   This patch needs patches:
     9352164
   as prerequisites

OneOffEntry::getBugIDsFixed()
OneOffEntry::getBugIDsFixed() returns 1 bugs.
Patch  7527908      : applied on Fri May 06 22:25:33 CST 2011
Unique Patch ID:  12546933
   Created on 30 Apr 2010, 12:48:09 hrs PST8PDT
   Bugs fixed:
     7527908
   This patch overlays patches:
     9352164
   This patch needs patches:
     9352164
   as prerequisites

OneOffEntry::getBugIDsFixed()
OneOffEntry::getBugIDsFixed() returns 10 bugs.
Patch  9654991      : applied on Fri May 06 21:33:38 CST 2011
Unique Patch ID:  12816418
   Created on 30 Jun 2010, 18:30:40 hrs PST8PDT
   Bugs fixed:
     9714832, 9713537, 9678695, 9655017, 9173248, 8309642, 9678697, 9678690
     9573054, 9654991
   This patch overlays patches:
     9352164
   This patch needs patches:
     9352164
   as prerequisites

OneOffEntry::getBugIDsFixed()
OneOffEntry::getBugIDsFixed() returns 414 bugs.
Patch  9352164      : applied on Fri May 06 21:29:20 CST 2011
Unique Patch ID:  12307477
   Created on 1 Apr 2010, 11:33:14 hrs PST8PDT
   Bugs fixed:
     9377578, 6418420, 7835247, 7207654, 7592346, 6724797, 7936993, 7331867
     9093300, 7535152, 7552067, 5879114, 8866013, 5457450, 8344348, 7272297
     7136866, 7196894, 6258480, 7013124, 6512622, 6355586, 7196532, 8568395
     8309587, 7557226, 5399699, 6509115, 8568397, 8568398, 7127618, 5701695
     6052226, 7424804, 6817593, 7553884, 6741425, 7513673, 6783812, 8437213
     6452766, 6469211, 7527650, 8309592, 8479537, 5991038, 5686407, 6945157
     7639602, 9119226, 6403091, 7589862, 7552082, 6711853, 8304589, 6052169
     8199266, 6327692, 5756769, 9352191, 7460818, 6268409, 8232056, 6687381
     6972843, 8230457, 6800507, 7027551, 6778714, 6200820, 6645719, 7393804
     6775231, 3934160, 6683178, 6650256, 5085288, 7528105, 7329252, 6378112
     6151380, 6844866, 4723109, 8544896, 5126719, 5890312, 5934363, 7036453
     7610362, 8426816, 8433026, 7270434, 7172531, 6451626, 8247855, 5497338
     6324944, 6874522, 7175513, 6960489, 7341598, 8576156, 6797677, 8342923
     5895190, 6756739, 7150470, 7593835, 7356443, 7044551, 8227106, 4695511
     7298688, 5747462, 8556340, 7197445, 5348308, 7937113, 8341623, 7569205
     8409848, 6053134, 6163771, 6851669, 6181488, 6375150, 6825866, 7210921
     7295780, 6345573, 7033630, 6954722, 6824129, 7523475, 7457766, 7309458
     8324577, 6840740, 6804746, 7375611, 8268054, 6981690, 6512811, 6988017
     7375613, 8344399, 7340448, 8362683, 7375617, 8251247, 5933656, 6005347
     9145204, 6599920, 7238230, 6379441, 6452375, 6352003, 6833965, 7136489
     6610218, 7612639, 6392076, 7225204, 9119194, 5476236, 9442328, 7609057
     7609058, 6605106, 6374297, 6193945, 4693355, 8217795, 7039896, 7432514
     7330909, 6952701, 7190270, 8287155, 7587008, 7207932, 6802650, 7189447
     8481935, 4598439, 9442331, 6615740, 7155655, 6749617, 9442335, 7159505
     5868257, 5727166, 7173005, 6917874, 9442339, 7013768, 7691766, 7385253
     7291739, 7225720, 7257770, 7363767, 7244238, 6941717, 8267348, 7710551
     8354686, 7247217, 8328954, 7299153, 8909984, 6681695, 8702276, 9119284
     8217011, 7661251, 6265559, 6823287, 6991626, 6954829, 5259835, 6500033
     5923486, 7432601, 7022234, 8534387, 5147386, 7697802, 6653934, 7375644
     6490140, 7662491, 8331466, 5623467, 6070225, 6635214, 7396409, 6638558
     7038750, 6714608, 6838714, 6870937, 7219752, 7263842, 7278117, 6882739
     5404871, 8836667, 8373286, 7393292, 6678845, 6903051, 7936793, 6600051
     7155248, 4966512, 7155249, 7197637, 8836308, 8568402, 8568404, 8568405
     8431487, 5704108, 6343150, 7280764, 6923450, 7643632, 6145177, 8836671
     8310931, 6640411, 8347704, 8836675, 7155250, 7155251, 8836677, 7155252
     8836678, 7155253, 8292378, 7155254, 6219529, 7411865, 8227091, 8340379
     7276960, 6145687, 7659217, 5863926, 7022905, 6852598, 7123643, 6596564
     6413089, 6851438, 8836681, 8836683, 8836684, 8836686, 7579469, 7494333
     7315642, 8340383, 6786022, 8340387, 6926448, 7600026, 7462072, 6679303
     8815639, 7197583, 7172752, 7326645, 7008262, 9173244, 9173248, 7573151
     8490879, 7477934, 6725634, 6733655, 6799205, 6980597, 7499353, 6084232
     6014513, 7140204, 7254987, 8833280, 6647480, 6120004, 7693128, 6760697
     6051177, 8247215, 6858062, 7189645, 6844739, 6768251, 7196863, 5630796
     7378661, 7378735, 5970301, 6705822, 8290506, 6658484, 7599944, 9173253
     8309623, 7125408, 7257461, 6987790, 7568556, 6919819, 8886674, 5883691
     6955744, 7801939, 6074620, 7149004, 6857917, 8283650, 6445948, 5929055
     6110752, 7552042, 8210889, 8287504, 6506617, 7306915, 6271590, 5386204
     6976005, 8330783, 7606362, 5377242, 7043989, 8309632, 7575925, 6870047
     8309637, 5902053, 8309639, 7028176, 6827260, 7588384, 4726401, 6720712
     5910650, 6752765, 6971433, 6024730, 8315482, 6628122, 8239142, 9352164
     5695562, 4637902, 7345904, 8309642, 6994160, 8556586, 6404447, 8220734
     6919764, 7597354, 7523787, 6029179, 5231155, 6455659

probeAndPrintRACInfo()
Rac::getInstance()
 initializing racType
Rac::getClusterNodes()
 calling OiiOracleHomeInfo::getNodeList()
 OiiiOracleHomeInfo::getNodeList() returned 0 elements.
RAC::getClusterNodes() returned a list of 0 elements.
 User did not use -no_inventory, so why clusterNodes are empty?
 clusterNodes is null or empty, set racType to NO_RAC
Not a RAC system or shouldn't be treated like one
Rac::shouldPropagate()
Rac::getInstance()
 racType has been initialized, just return the cached object
[Rac: [RacType: typeDesc= NO_RAC, detail= Not a RAC system or shouldn't be treated like one ], should propagate file= false, local node="", remote nodes=", racTypeDetail="Not a RAC system or shouldn't be treated like one", racDiagMsg="
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.
 ]
probeAndPrintRACInfo() done
--------------------------------------------------------------------------------
Locker::release()
OUISessionManager::unRegister()
Un-Registering the caller : OPatch
LsInventory::getInstance() returns
Cleaning up the directory : "/s01/db_1/.patch_storage/patch_unzip"...

OPatch succeeded.

记以录之!


Posted

in

by

Tags:

Comments

3 responses to “使用OPATCH_DEBUG环境变量调试Opatch工具”

  1. maclean Avatar

    Opatch Failing With Error Code 74 While Applying PSU

    Applies to:
    Oracle Server – Enterprise Edition – Version: 10.1.0.2 to 11.2.0.2 – Release: 10.1 to 11.2
    Information in this document applies to any platform.
    Goal

    The following error occurs when applying a patch

    Running prerequisite checks…
    Prerequisite check “CheckApplicable” failed.
    The details are:

    Patch :
    Archive Action: Source File “/files/network/lib/libnlsnr10.a/nsglro.o” does not exists or is not readable
    ‘oracle.network.rsf, 10.2.0.4.0’: Cannot update file ‘$ORACLE_HOME/libnlsnr10.a’ with ‘/nsglro.o’

    ApplySession failed during prerequisite checks: Prerequisite check “CheckApplicable” failed.

    Solution

    The downloaded file is corrupted. Please verify the size of the downloaded file “p[patch_id]_[version]_[platform].zip” to be as size mentioned on My Oracle Support Portal and try reapplying the patch.

    Verify the size of the downloaded file “p[patch_id]_[version]_[platform].zip” to be as size mentioned on My Oracle Support Portal

    Unzip the Patch number to some temporary location like /tmp using oracle user

    % cp p[patch_id]_[version]_[platform].zip /tmp
    % cd /tmp
    % unzip p[patch_id]_[version]_[platform].zip
    % cd

    Try applying the Patch with opatch under debug option as

    % export OPATCH_DEBUG=TRUE
    % opatch apply

  2. maclean Avatar

    What Information Oracle Support Need To Work On OPatch Service Requests?

    Applies to:
    Oracle Universal Installer – Version: 1.0.0.0.57 to 11.2.0.2 – Release: to 11.2

    Goal
    In an ongoing effort to improve our product quality and service to our customers, we have identified an initial checklist of all information that can be provided to (or requested by) Global Customer Support for Database Opatch issues. It can also be used by customers to upload data proactively while raising the SR.

    NOTE: Data requested in a GENERIC template is required in ALL cases. For APPLY or ROLLBACK issues, upload the information requested in the respective APPLY or ROLLBACK template (in addition to the information requested in the relevant GENERIC template)

    Solution
    Windows specific Generic Data collection template:

    WINDOWS (GENERIC):
    [1] Open the command prompt , set the appropriate Oracle Home

    i.e. set ORACLE_HOME=”Path to Oracle Home directory”

    Execute the following commands :

    set PATH=%ORACLE_HOME%\OPatch;%ORACLE_HOME%\bin;%PATH%
    set > C:\info.log
    perl -v >> C:\info.log
    opatch lsinventory -all >> C:\info.log
    opatch lsinventory -detail >> C:\info.log
    set OPATCH_DEBUG=TRUE
    opatch lsinventory -detail >> C:\info.log

    Upload the file C:\info.log

    [2] Upload the following files :

    — C:\Program Files\Oracle\Inventory\ContentsXML\inventory.xml
    — %ORACLE_HOME%\inventory\ContentsXML\comps.xml

    [TOP]
    UNIX specific Generic Data collection template:

    UNIX(GENERIC):
    [1] Upload the Inventory pointer file:

    For HP-UX / Solaris : /var/opt/oracle/oraInst.loc
    For AIX / Linux : /etc/oraInst.loc

    [2] Assuming that the system is using the default inventory pointer file, execute the following commands :

    script /tmp/patchinfo2support.log
    uname -a
    set
    which perl
    perl -version
    $ORACLE_HOME/jdk/bin/java -version
    $ORACLE_HOME/jdk/bin/jar -help
    $ORACLE_HOME/OPatch/opatch lsinventory -all
    $ORACLE_HOME/OPatch/opatch lsinventory -detail
    export OPATCH_DEBUG=TRUE
    $ORACLE_HOME/OPatch/opatch lsinventory
    exit

    Upload the file /tmp/patchinfo2support.log

    Note:: If the inventory pointer file (oraInst.loc) is not at the default location, use the following switch for opatch commands.
    “-invPtrLoc path_to_oraInst.loc”

    Example:
    If oraInst.loc is in /tmp, the format of commands would be:

    $ORACLE_HOME/OPatch/opatch lsinventory -all -invPtrLoc /tmp/oraInst.loc
    $ORACLE_HOME/OPatch/opatch lsinventory -detail -invPtrLoc /tmp/oraInst.loc

    [3] Upload the following files as well :

    — Central_Inventory/ContentsXML/inventory.xml
    where central Inventory is the PATH given by the variable ‘inventory_loc’ in oraInst.loc

    — $ORACLE_HOME/inventory/ContentsXML/comps.xml

    [TOP]
    Windows specific Opatch apply Data collection template:

    WINDOWS (OPATCH APPLY)
    [1] Provide exact name of the patch downloaded from Metalink.
    Format would be “p[patch_id]_[version]_[platform].zip

    Example : p7154111_92080_WINNT.zip

    [2] Upload the relevant apply action log file for this patching attempt:

    9iR2 & 10gR1
    This file would be present in the directory %ORACLE_HOME%\.patch_storage\”patch_id”

    For example “C:\Oracle\product\920\.patch_storage\12345\Apply_patch_id_timestamp.log

    If there were multiple patching attempts, please upload all the Apply Action log files present in this directory.

    10gR2 & 11g
    This file would be present in the directory %ORACLE_HOME%\cfgtoollogs\opatch .

    Refer the file ‘opatch_history.txt’ which would be helpful in finding the correct file.

    A sample entry of opatch_history.txt would be something like : —
    Date & Time : Tue Sep 02 21:46:12 IST 2008
    Oracle Home : E:\oracle\product\10.2.0\db_1
    OPatch Ver. : 10.2.0.1.0
    Current Dir : E:\Oracle\product\10.2.0\db_1\patch\5601428
    Command : apply
    Log File : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch-2008_Sep_02_21-46-12-IST_Tue.log

    In this case , the log file is —- opatch-2008_Sep_02_21-46-12-IST_Tue.log

    [TOP]
    UNIX specific Opatch apply Data collection template:

    UNIX (OPATCH APPLY)
    [1] Provide exact name of the patch downloaded from Metalink.
    Format would be “p[patch_id]_[version]_[platform].zip

    Example : p7154111_92080_LINUX.zip

    [2] Upload the relevant apply action log file for this patching attempt.

    9iR2 & 10gR1
    This file would be present in the directory “$ORACLE_HOME/.patch_storage/patch_id”

    For example :
    /u01/app/oracle/product/920/.patch_storage/123456/Apply_patch ID_timestamp.log

    If there were multiple patching attempts, please upload all the Apply Action log files present in this directory

    10gR2 & 11g
    This file would be present in the directory :$ORACLE_HOME/cfgtoollogs/opatch

    Refer the file ‘opatch_history.txt’ which would be helpful in finding the correct file.

    A sample entry of opatch_history.txt would be something like : —
    Date & Time : Mon Mar 24 15:41:00 EST 2008
    Oracle Home : /u03/app/oracle/product/10.2.0.3
    OPatch Ver. : 10.2.0.3.4
    Current Dir : /cpu/10203/apr/6864068
    Command : napply -skip_subset -skip_duplicate
    Log File : /u03/app/oracle/product/10.2.0.3/cfgtoollogs/opatch/opatch2008-03-24_15-41-00PM.log

    In this case , the log file is —- opatch2008-03-24_15-41-00PM.log

    [TOP]
    Windows specific Opatch rollback Data collection template:

    WINDOWS (ROLLBACK)

    9iR2 & 10gR1
    [1] Upload the relevant Rollback action log file for this rollback attempt.
    This file would be present in the directory :%ORACLE_HOME%\.patch_storage\patch_id

    [2] Change the directory to %ORACLE_HOME%\.patch_storage\patch_id
    Execute the following command :

    dir /s > C:\patchstorage_info.log

    Upload the file C:\patchstorage_info.log

    10gR2 & 11g
    [1] Upload the relevant Rollback action log file for this rollback attempt.

    This file would be present in the directory :%ORACLE_HOME\cfgtoollogs\opatch

    Refer the file ‘opatch_history.txt’ which would be helpful in finding the correct file.

    A sample entry of opatch_history.txt would be something like : —
    Date & Time : Tue Sep 02 21:46:12 IST 2008
    Oracle Home : E:\oracle\product\10.2.0\db_1
    OPatch Ver. : 10.2.0.1.0
    Current Dir : E:\Oracle\product\10.2.0\db_1\patch\5601428
    Command : apply
    Log File : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch-2008_Sep_02_21-46-12-IST_Tue.log

    In this case, the log file would be : – opatch-2008_Sep_02_21-46-35-IST_Tue.log

    [2] Change the directory to
    %ORACLE_HOME%\.patch_storage\patch_id_timestamp

    Example:
    E:\Oracle\product\10.2.0\db_1\.patch_storage\5601428_Feb_19_2007_16_07_29

    Execute the following command :

    dir /s > C:\patchstorage_info.log

    Upload the file C:\patchstorage_info.log

    [TOP]
    UNIX specific Opatch rollback Data collection template:

    UNIX (ROLLBACK)

    9iR2 & 10gR1
    [1] Upload the relevant Rollback action log file for this rollback attempt.

    This file would be present in the directory :$ORACLE_HOME/.patch_storage/patch_id

    Example :
    /u02/app/oracle/product/920/.patch_storage/6430653

    [2] Change the directory to $ORACLE_HOME/.patch_storage/patch_id

    Execute the following command:

    script /tmp/patchstorage_info.log
    ls -lR
    exit

    Upload the file /tmp/patchstorage_info.log

    10gR2 & 11g
    [1] Upload the relevant Rollback action log file for this rollback attempt.

    This file would be present in the directory :$ORACLE_HOME/cfgtoollogs/opatch. Refer to the file ‘opatch_history.txt’ which would be helpful in finding the correct file.

    A sample entry of opatch_history.txt would be something like : —
    Sample Entry of ‘opatch_history.txt’
    —————————————————
    Date & Time : Sun Jul 06 19:41:08 IST 2008
    Oracle Home : /u01/app/oracle/product/10gr2
    OPatch Ver. : 10.2.0.4.3
    Current Dir : /u01/app/oracle/product/10gr2/CPU/5049080
    Command : rollback -id 5049080
    Log File : /u01/app/oracle/product/10gr2/cfgtoollogs/opatch/opatch2008-07-06_19-41-07PM.log

    In this case, the relevant log file would be : – opatch2008-07-06_19-41-07PM.log

    [2] Change the directory to $ORACLE_HOME/.patch_storage/patch_id_timestamp

    Example :
    /u01/app/oracle/product/10gr2/.patch_storage/5049080_Mar_29_2006_01_53_48

    Execute the following command:

    script /tmp/patchstorage_info.log
    ls -lR
    exit

    Upload the file /tmp/patchstorage_info.log

  3. maclean Avatar

    Discoverer Opatch Troubleshooting

    Applies to:
    Oracle Discoverer – Version: 9.0.4.43.15 to 10.1.2.2 – Release: 9.0.2 to 10.1.2
    Information in this document applies to any platform.
    Checked for relevancy 5-MAR-2008.
    Purpose

    This note is intended to help Oracle customers and support engineers working with OPatch and Discoverer.
    It introduces the Opatch utility and explains how Opatch is used with Discoverer. It includes guidelines for troubleshooting Discoverer Interim Patch installations.

    While this note is intended to be generic and useful for any operating system or platform, many of the command examples are unix specifc.
    Windows command options are further described in Note 444516.1, How to Use Opatch to Install
    Discoverer Administration Edition or Desktop Patches.

    Scope and Application
    This is intended to help Discoverer 9.0.4.1 onwards PSE installation
    Discoverer Opatch Troubleshooting
    Discoverer Opatch Troubleshooting:
    1. Opatch Introduction

    The Interim Patch Installer, OPatch, is an Oracle supplied utility used to apply interim patches (PSE) to Oracle software.

    OPatch supports:

    Applying an interim patch
    Rolling back (uninstalling) an interim patch
    Conflict resolution when applying an interim patch after previous interim patches have been applied
    Patch status and reporting for installed interim patches

    All OPatch commands have a –help option that will display the usage details for that command.
    The help syntax is:

    opatch [ -h[elp] { [ apply | lsinventory | rollback | version ]}

    2. Opatch and Discoverer

    Discoverer 9.0.4.1 onwards uses OPatch to install Patch Set Exceptions (PSE).
    To use OPatch, you have to download and install the latest available version.
    Currently, Oracle recommends using version 1.0.0.0.57 or later.
    If your version is lower, please download Metalink Patch 6880880 and follow the instructions in the readme.txt.

    NOTE: Ensure that you download version 10.1.0.0.0 (Opatch version 1.0.0.0.58).
    You MUST NOT upgrade the OUI to version 10.2 or 11 as it is not compatible with Discoverer 10.1.2.

    You must have PERL 5.00503 (or later) installed and listed in the PATH variable.
    Unzip PSE patches into a temporary directory and then cd to that directory to apply the patch.
    Ensure you set the $ORACLE_HOME and $PATH variables before attempting to install the patch.
    You must be in the directory that bears the same name as the actual Patch ID number (i.e. 223479)

    $cd patch223479
    $cd 223479
    $opatch apply

    3. Troubleshooting

    Ensure you have the latest Opatch version installed and that the directory for OPatch is listed in your PATH variable when you set the Discoverer environment. At the same time make sure you do not pick up another opatch version. You can check your Opatch version and which opatch you are using running commands:
    $ opatch version
    $ which opatch

    Check PATH –
    $echo $PATH (Unix/Linux)
    $echo %PATH% (Windows)

    Ensure you have Perl 5.00503 (or later) installed and in the PATH. Perl 5.6.1 or later is recommended.

    Check that the PSE can be applied on top of your current Discoverer version and that it is available for your operating system (OS). These details are described in the PSE/interim patch readme.txt file.

    If you are still unable to apply the PSE you can set environment variable OPATCH_DEBUG=TRUE. In this way you get more information during the installation.
    A log of all OPatch actions and results is stored in the file:

    Unix: $ORACLE_HOME/.patch_storage//
    NT: %ORACLE_HOME%\.patch_storage\\
    where:
    · patch_id is the id of the interim patch
    · logfile is the name of the file being used and is created with name of:
    __.log
    where action is “Apply” or “Rollback”.

    5. Sometimes, a PSE or interim patch cannot be applied due to a conflict with another PSE.
    You can list the interim patches installed running command:

    $ opatch lsinventory

    It’s recommended that you do not force the PSE installation using –force option.
    The -force option causes a rollback of any conflicting patches before applying the desired patch and could
    generate regression bugs.

    6. If Opatch does not find the required version in the inventory it could be the inventory is not in the
    default location. This can happen when the installation used the “invPtrLoc” flag.
    You can specify the inventory location using the -invPtrLoc flag and by specifying the path to the
    oraInst.loc file. For example:

    $ opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc

    7. There is a known issue if you have Active State Perl on Windows and there is a space in one of the
    directories in the PATH. The space is handled differently in Active State Perl.
    For example, applying a PSE on such an environment could cause the error:

    The filename, directory name, or volume label syntax is incorrect.
    c:\oracle\BIToolsHome_1\OPatch\opatch.pl version: 1.0.0.0.57
    Copyright (c) 2001-2004 Oracle Corporation. All Rights Reserved.
    Error in executing Java program to check conflict
    ERROR: OPatch failed during pre-reqs check.

    To resolve this error, set environment variable ACTIVE_STATE_PERL=TRUE and then apply the
    PSE. See Note 335119.1 for more information.

    8. Applying a PSE running command “opatch apply”, you get an error like the following:

    MISSING_COMPONENT : oracle.discoverer.services, 9.0.4.45.07
    This Oracle Home does not have components/versions required by the patch.
    ERROR: OPatch failed during pre-reqs check.

    Verify the Discoverer version on the environment you are attempting to patch. It could be you are not on the right version and have to apply a patch set before you are able to apply the PSE.
    Then be sure there is only one inventory in your environment and eventually re-run the command “opatch apply” with invPtrLoc flag. For example:

    opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc

    If you are still unable to apply the PSE due to the missing component error, you can look into the inventory using PrintInv utility.
    This utility is ditributed by support and it’s not available via Metalink.

    Once you have this utility you run command “printinv ” and you will see components and versions installed in your environment.
    You can redirect the output to text file that you can browse later.

    9. OPatch detects the wrong OS platform, for example you get a warning message while installing a
    message on a Linux operating system:

    OPatch detects your platform as 23 while this patch 5731732 supports
    platforms:

    46 (Linux Intel)

    225 (Red Hat Enterprise Linux Advanced Server x86-64

    (AMD Opteron Architecture))
    226 (Linux x86-64)

    This problem occurs when the oraclehomeproperties.xml fie in the $ORACLE_HOME/inventory/ContentsXML/directory lists an incorrect platform.

    For example:
    [oracle@jion oracle]$ more

    $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml

    23
    Solaris Operating System(SPARC 64-bit)

    This is a known Linux specific bug that can occur in the 10.1.2.2 patchset (Bug 5861907.
    To resolve this error, you will need to apply Linux PSE Patch 5861907 or use the workaround
    described in Note 430547.1.

    Workarounds:

    You can set OPATCH_PLATFORM_ID to the right platform id, for example:

    $ export OPATCH_PLATFORM_ID=46

    ~ or ~

    Edit $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml (take a backup first).
    Then you can successfully apply the PSE.

    Note: $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml does not exist for BITools OH, the “export OPATCH_PLATFORM_ID=” has to be used overcoming this issue for BITools Home.

    10. Attempting to apply a PSE, you get an error like the following:
    OPatch detects your platform as XXX while this patch XXXXXXX supports
    platforms:
    0 (Generic Platform) This patch is not suitable for this operating system.
    Please contact support for the correct patch.

    The actual error message will contain your patch number, and a three digit code for your server platform.
    The OPatch you have installed does not recognize the new Platform designation.
    A newer OPatch is available that can correctly apply patches that are designated as Generic Platform patches.
    The Inventory file contained in newer patches uses a Platform code of 0 for generic patches.
    The newest OPatch will recognize this platform code, and not do any further platform validation.

    The correct OPatch version can be downloaded from Metalink via Patch 6880880 Universal Installer: Patch OPatch 9i, 10.1

    The minimum OPatch version that is required to apply Generic Platform patches is 1.0.0.0.57.

    This download provides a ReadMe file that includes installation instructions. Once the new
    OPatch has been downloaded and applied, the platform code will not be validated if the Inventory
    file indicates the patch is for Platform code 0 Generic Platform.

    11. All $ORACLE_HOME processes have been shut down, but the opatch apply or rollback command fails with “restore” errors on libraries.
    OPatch encounters the following file roll-back issues:
    The following files had problems with being restored:
    1. /u01/as10120/64bit/app/oracle/product/as10120bi/discoverer/lib/libdcecm51.so
    2. /u01/as10120/64bit/app/oracle/product/as10120bi/discoverer/lib/libdcell51.so
    3. /u01/as10120/64bit/app/oracle/product/as10120bi/discoverer/lib/libdcesqr51.so
    4. /u01/as10120/64bit/app/oracle/product/as10120bi/discoverer/lib/libdcf51.so
    5. /u01/as10120/64bit/app/oracle/product/as10120bi/discoverer/lib/libdcwio51.so

    The referenced lbraries are still loaded in memory even though the opmn processes were stopped. This is common on the AIX platform. On AIX you have to unload the libraries by running the following command as the root user :

    $slibclean

    12. Attempting to apply/rollback a PSE, you can’t patch some files:
    OPatch encounters the following issues during file patching:
    The following files had problems with being patched:
    1. d:\oracle\bi\bin\eulbuilder.jar
    [ Couldn’t copy d:\stage\pse\cp05\6472361\files\bin\eulbuilder.jar to d:
    \oracle\bi\bin\eulbuilder.jar from D:/stage/pse/cp05/6472361. ]

    Replying ‘Y’ will terminate the patch installation immediately. It WILL NOT rest
    ore any updates that have been performed to this point. It WILL NOT update the i
    nventory.
    Replying ‘N’ will update the inventory showing the patch has been applied.
    NOTE: After replying either ‘Y’ or ‘N’ it is critical to review:
    Metalink Note 312767.1 How to rollback a failed Interim patch installation

    It is likely that the root cause is that the eulbuilder.jar file is read-only and cannot be replaced by opatch.
    In the example above, ensure that the file D:\oracle\bi\.patch_storage\6472361\bin\eulbuilder.jar_pre_6472361 is not Read-Only
    by right clicking the file name -> choosing Properties -> Uncheck the “read-only” or “hidden file” attributes.
    Also check the properties on the D:\oracle\bi\bin\eulbuilder.jar file and
    D:\stage\pse\cp05\6472361\files\bin\eulbuilder.jar
    Once you have changed files attribute, choose ‘N’ and rollback the PSE.
    Then apply the patch again. In case your Discoverer instance does not work, you
    can re-apply Discoverer from the latest patch set (like 10.1.2..2) and re-apply the PSE.

    4. How to report an issue applying a Discoverer PSE with OPatch

    Any customers who encounter opatch issues and are unable to resolve the problem using the
    troubleshooting steps in this note, should open a Service Request (SR) with Oracle Support.
    Be sure that your SR includes the PSE or Patch ID number, installed versions and any opatch log files.

Leave a Reply to maclean Cancel reply

Your email address will not be published. Required fields are marked *