我们在使用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.
记以录之!
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
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
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.