最近霉,做什么事情都不顺利,下面是10RAC 从10.2.0.5升级到10.2.0.5.4,1节点正常升级,但是2节点遇到下面的报错
[oracle@rac2 12419392]$ opatch apply -local Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/10.2.0/db Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version : 10.2.0.5.0 OUI location : /u01/app/oracle/product/10.2.0/db/oui Log file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2013-04-28_21-03-57PM.log Patch history file: /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt ApplySession applying interim patch '12419392' to OH '/u01/app/oracle/product/10.2.0/db' OPatchSession cannot load inventory for the given Oracle Home /u01/app/oracle/product/10.2.0/db. Possible causes are: No read or write permission to ORACLE_HOME/.patch_storage Central Inventory is locked by another OUI instance No read permission to Central Inventory The lock file exists in ORACLE_HOME/.patch_storage The Oracle Home does not exist in Central Inventory ApplySession failed: ApplySession failed to prepare the system. Unable to create patchObject System intact, OPatch will not attempt to restore the system OPatch failed with error code 73
环境:OS RHEL 5.8 DB:10.2.0.5 RAC
1节点正常升级,在2节点遇到报错
故障现象:
1,opatch apply运行升级
[oracle@rac2 12419392]$ opatch apply -local Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/10.2.0/db Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version : 10.2.0.5.0 OUI location : /u01/app/oracle/product/10.2.0/db/oui Log file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2013-04-28_21-03-57PM.log Patch history file: /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt ApplySession applying interim patch '12419392' to OH '/u01/app/oracle/product/10.2.0/db' OPatchSession cannot load inventory for the given Oracle Home /u01/app/oracle/product/10.2.0/db. Possible causes are: No read or write permission to ORACLE_HOME/.patch_storage Central Inventory is locked by another OUI instance No read permission to Central Inventory The lock file exists in ORACLE_HOME/.patch_storage The Oracle Home does not exist in Central Inventory ApplySession failed: ApplySession failed to prepare the system. Unable to create patchObject System intact, OPatch will not attempt to restore the system OPatch failed with error code 73
故障处理结果:
通过下载相应的补丁包,CP相关的文件后,升级正常
故障分析过程:
1,使用opatch apply报下面的错误
[oracle@rac2 12419392]$ opatch apply -local Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/10.2.0/db Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version : 10.2.0.5.0 OUI location : /u01/app/oracle/product/10.2.0/db/oui Log file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2013-04-28_21-03-57PM.log Patch history file: /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt ApplySession applying interim patch '12419392' to OH '/u01/app/oracle/product/10.2.0/db' OPatchSession cannot load inventory for the given Oracle Home /u01/app/oracle/product/10.2.0/db. Possible causes are: No read or write permission to ORACLE_HOME/.patch_storage Central Inventory is locked by another OUI instance No read permission to Central Inventory The lock file exists in ORACLE_HOME/.patch_storage The Oracle Home does not exist in Central Inventory ApplySession failed: ApplySession failed to prepare the system. Unable to create patchObject System intact, OPatch will not attempt to restore the system OPatch failed with error code 73 使用opatch lsinventory也可样报错 [oracle@rac2 db]$ opatch lsinventory Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/10.2.0/db Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version : 10.2.0.5.0 OUI location : /u01/app/oracle/product/10.2.0/db/oui Log file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2013-04-28_21-08-30PM.log Patch history file: /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt Inventory load failed... OPatch cannot load inventory for the given Oracle Home. LsInventorySession failed: Unable to create patchObject OPatch failed with error code 73
升级报错,lsinventory同样也报错,通过opatch lsinventory可以看到报cannot load inventory。
2,查看inventory相关的目录、文件、权限
[oracle@rac2 db]$ cat /etc/oraInst.loc inventory_loc=/u01/app/oracle/oraInventory inst_group=dba [oracle@rac2 db]$ chown -R oracle:dba /u01/app/oracle/oraInventory [oracle@rac2 12419392]$ ls -ld $ORACLE_HOME drwxrwxrwx 65 oracle dba 4096 Apr 28 21:01 /u01/app/oracle/product/10.2.0/db [oracle@rac2 12419392]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG00-root 35G 7.3G 26G 23% / /dev/sda1 99M 24M 71M 25% /boot tmpfs 2.0G 0 2.0G 0% /dev/shm //192.168.111.1/install 932G 582G 350G 63% /soft [oracle@rac2 ContentsXML]$ cat inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 2005 Oracle Corporation. All rights Reserved --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>10.2.0.1.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraCrs10g_home" LOC="/u01/app/oracle/product/10.2.0/crs" TYPE="O" IDX="1" CRS="true"> <NODE_LIST> <NODE NAME="rac1"/> <NODE NAME="rac2"/> </NODE_LIST> </HOME> <HOME NAME="OraDb10g_home1" LOC="/u01/app/oracle/product/10.2.0/db" TYPE="O" IDX="2"> <NODE_LIST> <NODE NAME="rac1"/> <NODE NAME="rac2"/> </NODE_LIST> </HOME> </HOME_LIST> </INVENTORY>
都是正常的,跟1节点的内容都是一样。
3,开启opatch 的debug功能
[oracle@rac2 12419392]$ export OPATCH_DEBUG=TRUE [oracle@rac2 12419392]$ opatch lsinventory _osArch is i386 /u01/app/oracle/product/10.2.0/db/jdk/bin/java -cp /u01/app/oracle/product/10.2.0/crs/OPatch/ocm/lib/emocmutl.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/ocm/lib/emocmclnt.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/OraInstaller.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/OraPrereq.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/xmlparserv2.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/orai18n-mapping.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/share.jar:/u01/app/oracle/product/10.2.0/db/oui/jlib/srvm.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatch.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatchutil.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatchprereq.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatchactions.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatchfmw.jar:/u01/app/oracle/product/10.2.0/crs/OPatch/jlib/opatchext.jar -DOPatch.ORACLE_HOME=/u01/app/oracle/product/10.2.0/db -DOPatch.DEBUG=true -DOPatch.RUNNING_DIR=/u01/app/oracle/product/10.2.0/crs/OPatch oracle/opatch/OPatch lsinventory Invoking OPatch 10.2.0.5.1 ...................................... OUISessionManager::getInventorySession() Caller Details: Caller Name : OPatch Caller Version : 10.2.0.5.1 Requested Read-only access : true Oracle Home : /u01/app/oracle/product/10.2.0/db 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 /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/actions.xml PatchObject::PatchObject looks for the inventory file /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/inventory.xml PatchObject::PatchObject now looks for the actions file /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/actions PatchObject::PatchObject now looks for the inventory file /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/inventory Loading the information from inventory/filemap. Inventory load failed... OPatch cannot load inventory for the given Oracle Home. Locker::release() OUISessionManager::unRegister() Un-Registering the caller : OPatch LsInventory::getInstance() returns LsInventorySession failed: Unable to create patchObject Cleaning up the directory : "/u01/app/oracle/product/10.2.0/db/.patch_storage/patch_unzip"... OPatch failed with error code 73
这里已经看到问题出在9952245这个补丁包的目录,确认相关文件不存在,于是手动创建相关目录,下载9952245的补丁,cp到相当的目录下面
[oracle@rac2 oneoffs]$ mkdir -p 9952245/etc/config/ [oracle@rac2 oneoffs]$ mkdir -p 9952245/etc/config/ [oracle@rac2 oneoffs]$ cp /soft1/9952245/custom/server/9952245/etc/config/actions.xml /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/ [oracle@rac2 oneoffs]$ cp /soft1/9952245/custom/server/9952245/etc/config/inventory.xml /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/ [oracle@rac2 oneoffs]$ cp /soft1/9952245/custom/server/9952245/etc/config/actions.xml /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/actions [oracle@rac2 oneoffs]$ cp /soft1/9952245/custom/server/9952245/etc/config/inventory.xml /u01/app/oracle/product/10.2.0/db/inventory/oneoffs/9952245/etc/config/inventory
再次运行opatch lsinventory正常
4,使用opatch apply –local升级
[oracle@rac2 12419392]$ unset OPATCH_DEBUG [oracle@rac2 12419392]$ echo $OPATCH_DEBUG [oracle@rac2 12419392]$ opatch apply -local ................... Patching component oracle.xdk.rsf, 10.2.0.5.0... Updating archive file "/u01/app/oracle/product/10.2.0/db/lib/libxml10.a" with "lib/libxml10.a/lpxpar.o" Updating archive file "/u01/app/oracle/product/10.2.0/db/lib32/libxml10.a" with "lib32/libxml10.a/lpxpar.o" Patching component oracle.precomp.common, 10.2.0.5.0... Patching component oracle.rdbms.rman, 10.2.0.5.0... Running make for target client_sharedlib Running make for target ioracle Running make for target iwrap Running make for target client_sharedlib Running make for target proc Running make for target irman ApplySession adding interim patch '12419392' to inventory Verifying the update... Inventory check OK: Patch ID 12419392 is registered in Oracle Home inventory with proper meta-data. Files check OK: Files from Patch ID 12419392 are present in Oracle Home. The local system has been patched and can be restarted. -------------------------------------------------------------------------------- The following warnings have occurred during OPatch execution: 1) OUI-67620:Interim patch 12419392 is a superset of the patch(es) [ 12419392 ] in the Oracle Home -------------------------------------------------------------------------------- OPatch Session completed with warnings. OPatch completed with warnings [oracle@rac2 12419392]$ opatch lsinventory; Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/10.2.0/db Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version : 10.2.0.5.0 OUI location : /u01/app/oracle/product/10.2.0/db/oui Log file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2013-04-28_21-47-30PM.log Patch history file: /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /u01/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/lsinv/lsinventory2013-04-28_21-47-30PM.txt -------------------------------------------------------------------------------- Installed Top-level Products (2): Oracle Database 10g 10.2.0.1.0 Oracle Database 10g Release 2 Patch Set 4 10.2.0.5.0 There are 2 products installed in this Oracle Home. Interim patches (2) : Patch 12419392 : applied on Sun Apr 28 21:35:38 CST 2013 Unique Patch ID: 13794201 Created on 29 May 2011, 22:29:59 hrs PST8PDT Bugs fixed: 6402302, 10269717, 10327190, 8865718, 10017048, 9024850, 8394351, 8546356 9360157, 9770451, 9020537, 9772888, 8664189, 10091698, 12551710, 7519406 10132870, 8771916, 9109487, 10173237, 10068982, 8350262, 11792865 11724962, 11725006, 9184754, 8544696, 9320130, 7026523, 8277300, 9726739 8412426, 12419392, 6651220, 9150282, 9659614, 9949948, 10327179, 8882576 7612454, 9711859, 9714832, 10248542, 9952230, 9469117, 9952270, 8660422 10324526, 12419258, 9713537, 10010310, 9390484, 9963497, 12551700 12551701, 10249537, 12551702, 12551703, 8211733, 12551704, 9548269 12551705, 12551706, 9337325, 12551707, 7602341, 12551708, 9308296 10157402, 11737047 Patch 9952245 : applied on Sun Apr 28 06:25:54 CST 2013 Unique Patch ID: 13197883 Created on 17 Jan 2011, 03:04:34 hrs PST8PDT Bugs fixed: 9952245, 9879181, 9610672, 9872299, 9577921, 8308495, 9103966, 8996060 6899183, 9261837, 8487143, 9646836 Rac system comprising of multiple nodes Local node = rac2 Remote node = rac1 -------------------------------------------------------------------------------- OPatch succeeded.
升级成功。
5,升级数据字典
[oracle@rac2 12419392]$ srvctl start listener -n rac2 [oracle@rac2 12419392]$ srvctl start asm -n rac2 -i +ASM2 [oracle@rac2 12419392]$ srvctl start database -d htz [oracle@rac2 12419392]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.htz.db application ONLINE ONLINE rac1 ora....z1.inst application ONLINE ONLINE rac1 ora....z2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2 [oracle@rac2 12419392]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Sun Apr 28 21:41:34 2013 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> @catbundle.sql psu apply SP2-0310: unable to open file "catbundle.sql" SQL> @?/rdbms/admin/catbundle.sql psu apply PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. SQL> @?/rdbms/admin/utlrp TIMESTAMP -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- COMP_TIMESTAMP UTLRP_BGN 2013-04-28 21:44:34 DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid DOC> objects in the database. Recompilation time is proportional to the DOC> number of invalid objects in the database, so this command may take DOC> a long time to execute on a database with a large number of invalid DOC> objects. DOC> DOC> Use the following queries to track recompilation progress: DOC> DOC> 1. Query returning the number of invalid objects remaining. This DOC> number should decrease with time. DOC> SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6); DOC> DOC> 2. Query returning the number of objects compiled so far. This number DOC> should increase with time. DOC> SELECT COUNT(*) FROM UTL_RECOMP_COMPILED; DOC> DOC> This script automatically chooses serial or parallel recompilation DOC> based on the number of CPUs available (parameter cpu_count) multiplied DOC> by the number of threads per CPU (parameter parallel_threads_per_cpu). DOC> On RAC, this number is added across all RAC nodes. DOC> DOC> UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel DOC> recompilation. Jobs are created without instance affinity so that they DOC> can migrate across RAC nodes. Use the following queries to verify DOC> whether UTL_RECOMP jobs are being created and run correctly: DOC> DOC> 1. Query showing jobs created by UTL_RECOMP DOC> SELECT job_name FROM dba_scheduler_jobs DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%'; DOC> DOC> 2. Query showing UTL_RECOMP jobs that are running DOC> SELECT job_name FROM dba_scheduler_running_jobs DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%'; DOC># PL/SQL procedure successfully completed. TIMESTAMP -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- COMP_TIMESTAMP UTLRP_END 2013-04-28 21:44:37 PL/SQL procedure successfully completed. DOC> The following query reports the number of objects that have compiled DOC> with errors (objects that compile with errors have status set to 3 in DOC> obj$). If the number is higher than expected, please examine the error DOC> messages reported with each object (using SHOW ERRORS) to see if they DOC> point to system misconfiguration or resource constraints that must be DOC> fixed before attempting to recompile these objects. DOC># OBJECTS WITH ERRORS ------------------- 0 DOC> The following query reports the number of errors caught during DOC> recompilation. If this number is non-zero, please query the error DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors DOC> are due to misconfiguration or resource constraints that must be DOC> fixed before objects can compile successfully. DOC># ERRORS DURING RECOMPILATION --------------------------- 0 PL/SQL procedure successfully completed. SQL> select * from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SERIES COMMENTS ------------------------------ --------------- ---------- ------------------------------ ---------- ------------------------------ ------------------------------ 28-APR-13 05.07.03.128164 AM VIEW RECOMPILE 8289601 view recompilation 28-APR-13 05.07.03.505281 AM UPGRADE SERVER 10.2.0.5.0 Upgraded from 10.2.0.1.0 28-APR-13 09.42.14.182027 PM APPLY SERVER 10.2.0.5 4 PSU PSU 10.2.0.5.4
整个数据库升级成功
10G RAC 10.2.0.5升级到10.2.0.5.4报错OPatch failed with error code 73:等您坐沙发呢!