一、CPU和PSU
近日,将数据库从9.2.0.6升级到11.2.0.4后,发现11.2.0.4通过DBLINK访问其他的9i库时发生ORA-02072错误,通过Google找到解决方案,即升级到PSU 11.2.0.4.8,在此,记录一下安装补丁的过程,建议在打补丁前仔细阅读补丁Readme文档的相关章节,有关补丁的所有细节都可以在文档中找到。
关于ORA-02072:
ORA-02072: distributed database network protocol mismatch Cause: This should never happen between different PRODUCTION releases of ORACLE, but may happen between alpha and beta releases, for example. Action: Upgrade the older release.
Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。
Oracle PSU的全称是Patch Set Update,Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。PSU通常随CPU一起发布。
CPU是累积的(Cumulative),即最新的CPU补丁已经包含以往的CPU补丁,所以只要安装最新的CPU补丁即可。
PSU通常也是增量的,大部分PSU可以直接安装,但有些PSU则必须要求安装了上一个版本的PSU之后才能继续安装,这一点可以查看PSU的Readme文档。
二、OPatch工具
OPatch工具包,在安装目录$ORACLE_HOME下,PSU安装升级,都是通过OPatch来完成的。PSU的升级安装对OPatch的版本有一定的要求,关于这一点,可以查看PSU的Readme文档。例如,要安装p21352635_112040_Linux-x86-64,则必须要11.2.0.3.6或更高版本的OPatch,见如下截图:
那么如何确定当前系统的OPatch版本呢?方法如下所示:
[[email protected] dbhome_1]$ cd $ORACLE_HOME/OPatch [[email protected] OPatch]$ ./opatch version OPatch Version: 11.2.0.3.4 OPatch succeeded.
显然,当前系统的OPatch版本不适合安装补丁p21352635_112040_Linux-x86-64,要先升级OPatch,升级步骤如下:
(1)、备份之前版本的OPatch。
$ mv $ORACLE_HOME/OPatch OPatch.backup # 也可以直接覆盖
(2)、下载对于版本的OPatch解压至$ORACLE_HOME目录下。然后授予执行权限。
$ chmod +x opatch opatch.bat opatchdiag opatchdiag.bat
(3)、重新验证OPatch版本。
$ ./opatch version OPatch Version: 11.2.0.3.6 OPatch succeeded.
三、应用补丁
主要,首先要关闭数据库监听和实例。
$ unzip p21352635_112040_Linux-x86-64.zip $ cd 21352635/ $ $ORACLE_HOME/OPatch/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/db_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc OPatch version : 11.2.0.3.6 OUI version : 11.2.0.4.0 Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2016-07-12_09-40-56AM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 17478514 18031668 18522509 19121551 19769489 20299013 20760982 21352635 Do you want to proceed? [y|n] ...省略部分内容... Backing up files... Applying sub-patch ‘17478514‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.sdo, 11.2.0.4.0... Patching component oracle.sysman.agent, 10.2.0.4.5... Patching component oracle.xdk, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.sdo.locator, 11.2.0.4.0... Patching component oracle.nlsrtl.rsf, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘18031668‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.ldap.rsf, 11.2.0.4.0... Patching component oracle.rdbms.crs, 11.2.0.4.0... Patching component oracle.precomp.common, 11.2.0.4.0... Patching component oracle.ldap.rsf.ic, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘18522509‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.precomp.common, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘19121551‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.precomp.common, 11.2.0.4.0... Patching component oracle.sysman.console.db, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.ordim.client, 11.2.0.4.0... Patching component oracle.ordim.jai, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘19769489‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ ApplySession: Optional component(s) [ oracle.sysman.agent, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.precomp.common, 11.2.0.4.0... Patching component oracle.ovm, 11.2.0.4.0... Patching component oracle.xdk, 11.2.0.4.0... Patching component oracle.rdbms.util, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.xdk.parser.java, 11.2.0.4.0... Patching component oracle.oraolap, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘20299013‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.rdbms.dv, 11.2.0.4.0... Patching component oracle.rdbms.oci, 11.2.0.4.0... Patching component oracle.precomp.common, 11.2.0.4.0... Patching component oracle.sysman.agent, 10.2.0.4.5... Patching component oracle.xdk, 11.2.0.4.0... Patching component oracle.sysman.common, 10.2.0.4.5... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.xdk.parser.java, 11.2.0.4.0... Patching component oracle.sysman.console.db, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.sysman.common.core, 10.2.0.4.5... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘20760982‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.sysman.console.db, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Verifying the update... Applying sub-patch ‘21352635‘ to OH ‘/u01/app/oracle/product/11.2.0/db_1‘ Patching component oracle.sysman.agent, 10.2.0.4.5... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Verifying the update... Composite patch 21352635 successfully applied. Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2016-07-12_09-40-56AM_1.log OPatch succeeded.
运行catbundle.sql和utlrp.sql脚本,对于RAC环境,仅需要在一个节点上运行。
(1)、catbundle.sql将补丁信息反射到数据库中,使数据库知道你最后一次打了什么补丁或者回滚了哪些补丁。
cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP SQL> @catbundle.sql psu apply SQL> QUIT
(2)、utlrp.sql脚本可以在数据库运行的状态下编译数据库中的invalid对象,Oracle建议在对数据库进行迁移、升级、降级后都运行一遍utlrp.sql以编译无效对象。
cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @utlrp.sql
(3)、查看 $ORACLE_HOME/cfgtoollogs/catbundle or $ORACLE_BASE/cfgtoollogs/catbundle目录下的的日志文件是否记录错误。
catbundle_PSU_<database SID>_APPLY_<TIMESTAMP>.log catbundle_PSU_<database SID>_GENERATE_<TIMESTAMP>.log
至此,本次patch过程结束。
四、确认升级后补丁信息
(1)、通过OPatch的信息库记录,可以看到补丁信息。
$ $ORACLE_HOME/OPatch/opatch lsinventory 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/db_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc OPatch version : 11.2.0.3.6 OUI version : 11.2.0.4.0 Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2016-07-12_11-01-23AM_1.log Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2016-07-12_11-01-23AM.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.2.0.4.0 There are 1 product(s) installed in this Oracle Home. Interim patches (1) : Patch 21352635 : applied on Tue Jul 12 09:50:04 CST 2016 Unique Patch ID: 19227862 Patch description: "Database Patch Set Update : 11.2.0.4.8 (21352635)" Created on 1 Sep 2015, 07:49:44 hrs Sub-patch 20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)" Sub-patch 20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)" Sub-patch 19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)" Sub-patch 19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)" Sub-patch 18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)" Sub-patch 18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)" Sub-patch 17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)" Bugs fixed: 17288409, 21051852, 18607546, 17205719, 17811429, 17816865, 20506699 17922254, 17754782, 16934803, 13364795, 17311728, 17441661, 17284817 16992075, 17446237, 14015842, 19972569, 21538558, 20925795, 17449815 17375354, 19463897, 17982555, 17235750, 13866822, 18317531, 17478514 18235390, 14338435, 20803583, 13944971, 20142975, 17811789, 16929165 18704244, 20506706, 17546973, 20334344, 14054676, 17088068, 18264060 17346091, 17343514, 21538567, 19680952, 18471685, 19211724, 13951456 16315398, 18744139, 16850630, 19049453, 18673304, 17883081, 19915271 18641419, 18262334, 17006183, 16065166, 18277454, 16833527, 10136473 18051556, 17865671, 17852463, 18554871, 17853498, 18334586, 17588480 17551709, 19827973, 17842825, 17344412, 18828868, 17025461, 11883252 13609098, 17239687, 17602269, 19197175, 18316692, 17313525, 12611721 19544839, 18964939, 17600719, 18191164, 19393542, 17571306, 18482502 20777150, 19466309, 17040527, 17165204, 18098207, 16785708, 17174582 16180763, 17465741, 16777840, 12982566, 19463893, 12816846, 16875449 17237521, 19358317, 17811438, 17811447, 17945983, 18762750, 17184721 16912439, 18061914, 17282229, 18331850, 18202441, 17082359, 18723434 19554106, 14034426, 18339044, 19458377, 17752995, 20448824, 17891943 17258090, 17767676, 16668584, 18384391, 17040764, 17381384, 15913355 18356166, 14084247, 20506715, 13853126, 18203837, 14245531, 16043574 17848897, 17877323, 17468141, 17786518, 17912217, 17037130, 18155762 16956380, 17478145, 17394950, 18189036, 18641461, 18619917, 17027426 21352646, 16268425, 19584068, 18436307, 17265217, 17634921, 13498382 20004087, 17443671, 18000422, 20004021, 17571039, 21067387, 16344544 18009564, 14354737, 18135678, 18614015, 20441797, 18362222, 17835048 16472716, 17936109, 17050888, 17325413, 14010183, 18747196, 17761775 16721594, 17082983, 20067212, 21179898, 17302277, 18084625, 15990359 18203835, 17297939, 17811456, 16731148, 17215560, 13829543, 14133975 17694209, 18091059, 17385178, 8322815, 17586955, 17201159, 17655634 18331812, 19730508, 18868646, 17648596, 16220077, 16069901, 17348614 17393915, 17274537, 17957017, 18096714, 17308789, 18436647, 14285317 19289642, 14764829, 18328509, 17622427, 16943711, 14368995, 17346671 18996843, 17783588, 16618694, 17672719, 18856999, 18783224, 17851160 17546761, 17798953, 18273830, 19972566, 16384983, 17726838, 17360606 13645875, 18199537, 16542886, 17889549, 14565184, 17071721, 20299015 17610798, 20657441, 17397545, 18230522, 16360112, 19769489, 12905058 18641451, 12747740, 18430495, 17042658, 17016369, 14602788, 19972568 18508861, 19788842, 14657740, 17332800, 13837378, 19972564, 17186905 18315328, 19699191, 17437634, 19006849, 19013183, 17296856, 18674024 17232014, 16855292, 21051840, 14692762, 17762296, 17705023, 19121551 19854503, 19309466, 18681862, 18554763, 20558005, 17390160, 18456514 16306373, 13955826, 18139690, 17501491, 17299889, 17752121, 17889583 18673325, 18293054, 17242746, 17951233, 17649265, 18094246, 19615136 17011832, 16870214, 17477958, 18522509, 20631274, 16091637, 17323222 16595641, 16524926, 18228645, 18282562, 17596908, 17156148, 18031668 16494615, 17545847, 17614134, 13558557, 17341326, 17891946, 17716305 16392068, 19271443, 18092127, 18440047, 17614227, 14106803, 16903536 18973907, 18673342, 17389192, 16194160, 17006570, 17612828, 17721717 17570240, 17390431, 16863422, 18325460, 19727057, 16422541, 19972570 17267114, 18244962, 21538485, 18765602, 18203838, 16198143, 17246576 14829250, 17835627, 18247991, 14458214, 21051862, 16692232, 17786278 17227277, 16042673, 16314254, 16228604, 16837842, 17393683, 17787259 20331945, 20074391, 15861775, 16399083, 18018515, 18260550, 21051858 17036973, 16613964, 17080436, 16579084, 18384537, 18280813, 20296213 16901385, 15979965, 18441944, 16450169, 9756271, 17892268, 11733603 16285691, 17587063, 16538760, 18180390, 18193833, 21051833, 17238511 17824637, 16571443, 18306996, 14852021, 18674047, 17853456, 12364061 -------------------------------------------------------------------------------- OPatch succeeded.
(2)、另外,也可以通过dba_registry_history视图查看升级信息。
SQL> select version,id,bundle_series,comments from dba_registry_history; VERSION ID BUNDLE_SERIES COMMENTS -------------------- -- ------------------------------ ---------------------------------------- 11.2.0.4 0 PSU Patchset 11.2.0.2.0 11.2.0.4 0 PSU Patchset 11.2.0.2.0 11.2.0.4 8 PSU PSU 11.2.0.4.8