database psu 11.2.0.3.0 到11.2.0.3.9

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_ <database SID> _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的自述文档是最重要的。


 


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值