oracle database psu 11.2.0.3.0 到11.2.0.3.9 1.下载psu包,当然要有MOS账号才能下载啦。 unzip oracle_database_psu_11.2.0.3.9_Linux-x86-64.zip 2.给数据库软件打PATCH pri:orcl ls -lrt total 71268 drwxrwxr-x 11 oracle oinstall 4096 Jan 7 18:23 17
oracle database psu 11.2.0.3.0 到11.2.0.3.9
1.下载psu包,当然要有MOS账号才能下载啦。 unzip oracle_database_psu_11.2.0.3.9_Linux-x86-64.zip
2.给数据库软件打PATCH pri:orcl > ls -lrt total 71268 drwxrwxr-x 11 oracle oinstall 4096 Jan 7 18:23 17540582 -rw-rw-r-- 1 oracle oinstall 69702 Jan 13 19:18 PatchSearch.xml -rwxr-xr-x 1 oracle oinstall 72815847 Apr 14 09:34 oracle_database_psu_11.2.0.3.9_Linux-x86-64.zip
#我们看到有很多个patch,我以为进入最后一个patch来应用,前面的就会应用上。 pri:orcl > cd 17540582 pri:orcl > ls 13343438 13696216 13923374 14275605 14727310 16056266 16619892 16902043 17540582 patchmd.xml README.html README.txt
#opatch apply 发现出错,报错135 pri:orcl > opatch apply Invoking OPatch 11.2.0.1.7 Oracle Interim Patch Installer version 11.2.0.1.7 Copyright (c) 2011, Oracle Corporation. All rights reserved. Argument(s) Error... For the composite patch you have specified, the number of entries in the composite.xml does not equal the number of inventory.xml's. This could mean you are trying to apply the active constituent alone. Please supply the top-level directory of the composite patch, not one of its subdirectories, for opatch apply. If you still get this error after applying the top-level directory the composite patch may be improperly packaged. Please check the arguments and try again. OPatch failed with error code 135
#原来是version版本问题。根据自述文档,是要11.2.0.3.0的opatch工具才行。 You must use the OPatch utility version 11.2.0.3.0 or later to apply this patch. Oracle recommends that you use the latest released OPatch version for 11.2, which is available for download from My Oracle Support patch 6880880 by selecting the 11.2.0.0.0 release.
pri:orcl > opatch version Invoking OPatch 11.2.0.1.7 OPatch Version: 11.2.0.1.7 OPatch succeeded.
更新Opatch工具方法,需要从MOS上下载对应patch,然后覆盖到ORACLE_HOME下的Opatch目录即可。覆盖之前最好备份下。覆盖完后: pri:orcl > opatch version OPatch Version: 11.2.0.3.6 OPatch succeeded.
再来一次。 pri:orcl > opatch apply Oracle Interim Patch Installer version 11.2.0.3.6 Copyright (c) 2013, Oracle Corporation. All rights reserved. Argument(s) Error... Illegal file format for composite patch. There is no composite.xml file. Either this composite patch is not packaged properly, or you are applying a constituent individually. Please check the arguments and try again. OPatch failed with error code 135
可能是我的Patch工具没有安装好,重新去看下自述文件。
How to install the utility: --------------------------- To install this patch, Please extract the file "zipped file" using unzip or winzip, depending upon the platform. You should extract the zip file directly under the ORACLE_HOME. Please follow the following steps for extracting the zip file of OPatch. (1) Please take a backup of $ORACLE_HOME/OPatch into a dedicated backup location. (2) Please remove the contents of $ORACLE_HOME/OPatch directory (Please do not remove $ORACLE_HOME/OPatch directory itself) (3) Please unzip the OPatch downloaded zip into $ORACLE_HOME directory.
我当时是没备份,然后将整个OPatch目录覆盖了。怀疑是不是覆盖掉了更多的东西,比如旧目录下有composite.xml file这个文件。因为没有备份,只有重新安装11.2.0.3.0软件,将OPatch目录提取出来看看了。后来发现,没差别的。尽管我重新按照上面的3个步骤去做了,也一样出现这个错误,让我们再详细看看这个错误。 pri:orcl2 > opatch apply Oracle Interim Patch Installer version 11.2.0.3.6 Copyright (c) 2013, Oracle Corporation. All rights reserved. Argument(s) Error... Illegal file format for composite patch. There is no composite.xml file. Either this composite patch is not packaged properly, or you are applying a constituent individually. Please check the arguments and try again. OPatch failed with error code 135
应该是这个PSU包没有弄好的问题。是不是我的PSU是11.2.0.3.9,而opatch是11.2.0.3.6,opatch版本不够级别呢?想下载11.2.0.3.5或11.2.0.3.6的psu来验证,但是已经没得下载了,在MOS上只找到11.2.0.3.9的。
最后发现,原来opatch apply命令的执行路径比较重要,下面这样就行了。然后会将这些13343438-17540582的patch,都相继打上。 pri:orcl2 > cd 17540582 pri:orcl2 > ls 13343438 13696216 13923374 14275605 14727310 16056266 16619892 16902043 17540582 patchmd.xml README.html README.txt pri:orcl2 > opatch apply Oracle Interim Patch Installer version 11.2.0.3.6 Copyright (c) 2013, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.2.0.3.0 Central Inventory : /u01/app/oracle/oraInventory from : /u01/app/oracle/product/11.2.0.3.0/oraInst.loc OPatch version : 11.2.0.3.6 OUI version : 11.2.0.3.0 Log file location : /u01/app/oracle/product/11.2.0.3.0/cfgtoollogs/opatch/opatch2014-04-14_11-33-31AM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 13343438 13696216 13923374 14275605 14727310 16056266 16619892 16902043 17540582 Do you want to proceed? [y|n] y User Responded with: Y All checks passed. Provide your email address to be informed of security issues, install and initiate Oracle Configuration Manager. Easier for you if you use your My Oracle Support Email address/User Name. Visit http://www.oracle.com/support/policies.html for details. Email address/User Name: You have not provided an email address for notification of security issues. Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: Y Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/11.2.0.3.0') Is the local system ready for patching? [y|n] y User Responded with: Y Backing up files... Applying sub-patch '13343438' to OH '/u01/app/oracle/product/11.2.0.3.0' Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.dbscripts, 11.2.0.3.0... Verifying the update... Applying sub-patch '13696216' to OH '/u01/app/oracle/product/11.2.0.3.0' Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.sdo.locator, 11.2.0.3.0... Patching component oracle.sysman.console.db, 11.2.0.3.0... Patching component oracle.sysman.oms.core, 10.2.0.4.4... Verifying the update... Applying sub-patch '13923374' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.network.cman, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.dbscripts, 11.2.0.3.0... Patching component oracle.network.rsf, 11.2.0.3.0... Patching component oracle.network.listener, 11.2.0.3.0... Patching component oracle.sysman.console.db, 11.2.0.3.0... Verifying the update... Applying sub-patch '14275605' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.precomp.lang, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.network.client, 11.2.0.3.0... Patching component oracle.network.rsf, 11.2.0.3.0... Patching component oracle.precomp.common, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.dbscripts, 11.2.0.3.0... Patching component oracle.rdbms.rman, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.rdbms.util, 11.2.0.3.0... Verifying the update... Applying sub-patch '14727310' to OH '/u01/app/oracle/product/11.2.0.3.0' Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.dbscripts, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.sdo.locator, 11.2.0.3.0... Patching component oracle.sysman.console.db, 11.2.0.3.0... Patching component oracle.sysman.oms.core, 10.2.0.4.4... Verifying the update... Applying sub-patch '16056266' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.network.cman, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.network.listener, 11.2.0.3.0... Patching component oracle.network.rsf, 11.2.0.3.0... Patching component oracle.ovm, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.rman, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.sdo.locator, 11.2.0.3.0... Patching component oracle.rdbms.deconfig, 11.2.0.3.0... Verifying the update... Applying sub-patch '16619892' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.precomp.lang, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.marvel, 11.2.0.3.0... Patching component oracle.precomp.common, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.rman, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.sysman.agent, 10.2.0.4.3... Patching component oracle.sysman.console.db, 11.2.0.3.0... Patching component oracle.sysman.repository.core, 10.2.0.4.4... Patching component oracle.xdk, 11.2.0.3.0... Patching component oracle.xdk.parser.java, 11.2.0.3.0... Patching component oracle.xdk.rsf, 11.2.0.3.0... Verifying the update... Applying sub-patch '16902043' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.idm.oid, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.ldap.rsf, 11.2.0.3.0... Patching component oracle.ldap.rsf.ic, 11.2.0.3.0... Patching component oracle.owb.rsf, 11.2.0.3.0... Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.sysman.console.db, 11.2.0.3.0... Verifying the update... Applying sub-patch '17540582' to OH '/u01/app/oracle/product/11.2.0.3.0' ApplySession: Optional component(s) [ oracle.precomp.lang, 11.2.0.3.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms, 11.2.0.3.0... Patching component oracle.rdbms.rsf, 11.2.0.3.0... Patching component oracle.sdo, 11.2.0.3.0... Patching component oracle.ldap.rsf, 11.2.0.3.0... Patching component oracle.precomp.common, 11.2.0.3.0... Patching component oracle.ordim.client, 11.2.0.3.0... Patching component oracle.rdbms.util, 11.2.0.3.0... Patching component oracle.rdbms.dbscripts, 11.2.0.3.0... Patching component oracle.sdo.locator, 11.2.0.3.0... Patching component oracle.rdbms.rman, 11.2.0.3.0... Patching component oracle.ordim.jai, 11.2.0.3.0... Verifying the update... OPatch found the word "warning" in the stderr of the make command. Please look at this stderr. You can re-run this make command. Stderr output: ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg' /u01/app/oracle/product/11.2.0.3.0/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg' /u01/app/oracle/product/11.2.0.3.0/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg' /u01/app/oracle/product/11.2.0.3.0/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg' OPatch found the word "warning" in the stderr of the make command. Please look at this stderr. You can re-run this make command. Stderr output: ins_emagent.mk:113: warning: overriding commands for target `nmosudo' ins_emagent.mk:52: warning: ignoring old commands for target `nmosudo' /u01/app/oracle/product/11.2.0.3.0/sysman/lib/ins_emagent.mk:113: warning: overriding commands for target `nmosudo' /u01/app/oracle/product/11.2.0.3.0/sysman/lib/ins_emagent.mk:52: warning: ignoring old commands for target `nmosudo' Composite patch 17540582 successfully applied. OPatch Session completed with warnings. Log file location: /u01/app/oracle/product/11.2.0.3.0/cfgtoollogs/opatch/opatch2014-04-14_11-33-31AM_1.log OPatch completed with warnings.
#查看成果,的确是PSU到这个地步了。 pri:orcl2 > $ORACLE_HOME/OPatch/opatch lsinventory -invPtrLoc $ORACLE_BASE/oraInst.loc -bugs_fixed | egrep 'PSU|PATCH SET UPDATE' 17540582 17540582 Mon Apr 14 11:37:32 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.9 (INCLUDES CPU 16902043 16902043 Mon Apr 14 11:37:18 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.8 (INCLUDES CPU 17230530 16902043 Mon Apr 14 11:37:18 CST 2014 ORA-600 [KKZQID2FRO] AFTER APPLY 11.2.0.3.7 PSU PA 16619892 16619892 Mon Apr 14 11:36:52 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.7 (INCLUDES CPU 16056266 16056266 Mon Apr 14 11:36:25 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.6 (INCLUDES CPU 16368108 16056266 Mon Apr 14 11:36:25 CST 2014 RUNNING OWMV1120.PLB IN PSU 112036 GIVING ORA-0095 14727310 14727310 Mon Apr 14 11:36:14 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.5 (INCLUDES CPU 14275605 14275605 Mon Apr 14 11:35:35 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.4 (INCLUDES CPU 13923374 13923374 Mon Apr 14 11:35:29 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.3 (INCLUDES 13696216 13696216 Mon Apr 14 11:35:07 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.2 (INCLUDES 13343438 13343438 Mon Apr 14 11:34:19 CST 2014 DATABASE PATCH SET UPDATE 11.2.0.3.1
再研究一下,用11.2.0.3.0的软件,是可以打开11.2.0.3.9的数据dbf文件的。
2.Loading Modified SQL Files into the Database
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
回退: 1.我们先找出@catbundle_PSU_
_ROLLBACK.sql pri:orcl5 > ls | grep catbundle catbundle_PSU_ORCL5_APPLY.sql catbundle_PSU_ORCL5_ROLLBACK.sql catbundle.sql pri:orcl5 > pwd /u01/app/oracle/product/11.2.0.3.0/rdbms/admin shut immediate--关库任意目录下, opatch rollback -id 17540582 sqlplus '/as sysdba' startup
@?/rdbms/admin/catbundle_PSU_ORCL5_ROLLBACK.sql
SQL> set linesize 140
SQL> set pages 9999
SQL> col NAME for a12;
SQL> col PLATFORM_NAME for a24;
SQL> col action_time for a20;
SQL> col action for a26;
SQL>
SQL> select d.NAME,d.PLATFORM_NAME,
2 to_char(r.action_time, 'yyyy-mm-dd hh24:mi:ss') as action_time,
3 r.action||' ' ||'PSU :' || r.version || '.'||r.id as action,
4 decode (r.version || '.'||r.id,'11.2.0.3.5','Y','N') as upgraded
5 from dba_registry_history r, v$database d
6 where r.action_time = (select max(action_time) from dba_registry_history) ;
NAME PLATFORM_NAME ACTION_TIME ACTION UPG
------------ ------------------------ -------------------- -------------------------- ---
ORCL5 Linux x86 64-bit 2014-04-15 11:18:46 APPLY PSU :11.2.0.3.0 N
1 row selected.
所以总结下来,我们的步骤是分成两步,第一步是给软件打patch,然后再对数据库dbf文件对一些数据字典等的修改。第一步需要听库处理,第二步是open库后处理。回退也是先弄软件,再弄数据库。
看PSU的自述文档是最重要的。