文章目录
1.补丁介绍
在每次安装补丁之前你必须认真读取补丁的README文档.下面是我截取的一些重要信息
1.1 补丁信息
从CPUJan2016起,版本号的第5位将更改为以YYMMDD格式反映发布日期。有关 更多信息,请参见My Oracle Support文档2061926.1。
从2012年10月开始,关键补丁更新(CPU)补丁现在称为安全补丁更新(SPU)补丁。这些补丁仍将作为整个Oracle重要补丁更新(CPU)计划的一部分发布。请参阅My Oracle Support文档1430923.1 -Oracle产品的新补丁程序名称。
从2018年10月开始,此补丁将加密库更改为MES 4.1.5。请参阅My Oracle Support文档<<注释2458023.1 >>有关使用MES415加密库的数据库的重要使用说明。
此修补程序可安装Database Vault。 有关如何将此修补程序应用于Database Vault环境的详细信息,请查看My Oracle Support文档1195205.1。
安全补丁程序更新(SPU)补丁程序是累积性的,这意味着以前的Oracle安全警报中的修复程序和重要的补丁程序更新均已包括在内。在应用此SPU修补程序之前,不需要先应用以前的安全修补程序。但是,在为该版本应用SPU补丁之前,您必须处于给定产品主页的指定补丁集级别。
1.2 OPatch
您必须使用OPatch实用程序版本11.2.0.3.4或更高版本来应用此修补程序。Oracle建议您使用11.2的最新发行版OPatch,可以通过选择11.2.0.0.0版本从My Oracle Support补丁6880880下载。
有关OPatch文档的信息,包括任何已知问题,请参见My Oracle Support文档293369.1 OPatch文档列表。
1.3 补丁安装说明
跟着这些步骤:
- 如果使用的是Data Guard Physical Standby数据库,则必须按照My Oracle Support文档278641.1的说明,在主数据库和物理备用数据库上都安装此补丁程序。
- 如果这是RAC环境,请使用OPatch滚动(无停机)安装方法安装SPU补丁,因为SPU补丁可以滚动安装RAC。请参阅My Oracle Support Document 244241.1 Rolling Patch-OPatch Support for RAC。
- 如果这不是RAC环境,请关闭与要更新的Oracle主目录关联的所有实例和侦听器。有关更多信息,请参见《Oracle数据库管理员指南》。
- 确保$PATH有以下可执行文件:make,ar,ld,和nm。
这些可执行文件的位置取决于您的操作系统。在许多操作系统上,它们位于中/usr/ccs/bin,在这种情况下,您可以设置PATH如下:
导出PATH = $ PATH:/ usr / ccs / bin - 将当前目录设置为补丁程序所在的目录,然后通过输入以下命令来运行OPatch实用程序。
注意:
在安装SPU期间,可能多次发生以下错误:
在函数joxnfy_'中:jox.c :(。text + 0xa4d91):对
kg_link_failed_because_ojvm_bundle_installed_without_prereq_bundles’的未定义引用
…
您要继续吗?[y | n]
y做出回应,因为可以忽略此错误。
解压缩p 28364007_ 112040_ .zip
cd 28364007
opatch napply -skip_subset -skip_duplicate
注意:
如果Opatch 11.2.0.3.15或更高版本则使用-skip_subset 和-skip_duplicate不需要被指定为他们已经过时,并且在工具内部处理。
如果OPatch返回冲突或子集,请参考n-Apply SPU和补丁冲突检查以了解其他选项。
1.4 补丁安装后说明
以下步骤将修改后的SQL文件加载到数据库中。对于RAC环境,请仅在一个节点上执行这些步骤。
- 对于正在修补的Oracle主目录上运行的每个数据库实例,请使用SQL * Plus连接到数据库。以SYSDBA身份连接并catbundle.sql 如下运行脚本:
cd $ ORACLE_HOME / rdbms / admin
sqlplus / nolog
SQL>conn / AS SYSDBA
SQL>startup
SQL> @catbundle.sql cpu apply
SQL>exit
的catbundle.sql执行被反映在与束相关联的一系列连续dba_registry_history视图CPU
有关该catbundle.sql 脚本的信息,请参见《 My Oracle Support文档605795.1 Oracle数据库简介catbundle.sql”。
- 如果将OJVM PSU应用于先前的SPU修补程序,则catbundle.sql 在上一步中执行脚本后,您可能会看到无效的Java类。在这种情况下,请运行utlrp.sql 以重新验证这些Java类。
cd $ ORACLE_HOME / rdbms / admin
sqlplus / nolog
SQL>conn / AS SYSDBA
SQL> @utlrp.sql
- 检查以下日志文件中$ORACLE_BASE/cfgtoollogs/catbundle 是否有任何错误:
catbundle_CPU_ <数据库SID> APPLY .log
catbundle_CPU_ <数据库SID> GENERATE < TIMESTAMP> .log
其中TIMESTAMP的格式为YYYYMMMDD_HH_MM_SS。如果有错误,请参阅“ 已知问题”。
1.3.2.3在Oracle Home中安装SPU后创建或升级的数据库的补丁安装后说明
这些说明适用于在安装此SPU修补程序之后创建或升级的数据库 。
您必须执行的步骤加载修改SQL文件导入数据库的任何新的 数据库,只要它是由以下任何一种方法的创建:
使用DBCA(数据库配置助手)选择示例数据库(常规,数据仓库,事务处理)
使用由DBCA创建的脚本,该脚本从示例数据库创建数据库
对于已升级的数据库,无需执行任何操作。
2. 正式安装补丁
我的环境是RAC,根据README我们可以知道,是可以进行rolling升级,即一台安装好之后安装另一台,可以几乎不需要停机.
2.1 上传解压缩补丁
将补丁p28364007_112040_Linux-x86-64.zip p6880880_112000_Linux-x86-64.zip上传到服务器上.
解压缩两个补丁,其中p6880880是OPatch补丁,p28364007是spu补丁.
2.2 替换OPatch
安装文档需要使用11.2.0.3.4或者更高的OPatch来升级,这里我们下载的是最新的OPatch,肯定是支持的.这里直接替换oracle原来的OPatch:
cd 解压缩目录
cp -rf $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
cp -rf ./OPatch $ORACLE_HOME/
echo "PATH=$ORACLE_HOME/OPatch:$PATH" >> ~/.bash_profile
. ~/.bash_profile
查看opatch version:
[oracle@rac11g2 patch]$ opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.25
Copyright (c) 2020, 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.25
OUI version : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-08-19_23-27-10PM_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2020-08-19_23-27-10PM.txt
--------------------------------------------------------------------------------
Local Machine Information::
2.3 停止当前节点集群
为了防止文件占用,直接关闭当前节点的集群
[root@rac11g2 ~]# crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac11g2'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac11g2'
....
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac11g2' has completed
CRS-4133: Oracle High Availability Services has been stopped.
2.4 安装补丁
[oracle@rac11g2 patch]$ cd 28364007/
[oracle@rac11g2 28364007]$ opatch napply
Oracle Interim Patch Installer version 11.2.0.3.25
Copyright (c) 2020, 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.25
OUI version : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-08-19_23-30-18PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 17811429 17811438 17811447 18203835 18203838 19463893 19544839 19972564 19972568 20142975 21051833 21051840 21051858 21051862 21179898 21538558 21538567 22195441 22195465 22195477 22195492 22321741 22321756 22683225 22893153 23330124 23536835 24476265 24476274 24528741 25505371 25505382 25505394 25505407 26030218 26667015 26667023 26667032 28100487 28364007
Do you want to proceed? [y|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/db_1')
Is the local system ready for patching? [y|n]
y
...
Patches 17811429,17811438,17811447,18203835,18203838,19463893,19544839,19972564,19972568,20142975,21051833,21051840,21051858,21051862,21179898,21538558,21538567,22195441,22195465,22195477,22195492,22321741,22321756,22683225,22893153,23330124,23536835,24476265,24476274,24528741,25505371,25505382,25505394,25505407,26030218,26667015,26667023,26667032,28100487,28364007 successfully applied.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-08-19_23-35-42PM_1.log
OPatch completed with warnings.
安装完成之后就可以启动集群
2.5 加载sql文件
以下步骤将修改后的SQL文件加载到数据库中。对于RAC环境,请仅在一个节点上执行这些步骤。
[oracle@rac11g2 28364007]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 19 23:42:03 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> @?/rdbms/admin/catbundle.sql cpu apply
到此此补丁安装已经完成.
查看补丁版本:
[oracle@rac11g2 28364007]$ opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.25
Copyright (c) 2020, 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.25
OUI version : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2020-08-19_23-44-30PM_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2020-08-19_23-44-30PM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: rac11g2
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 11g 11.2.0.4.0
There are 1 products installed in this Oracle Home.
Interim patches (40) :
Patch 28364007 : applied on Wed Aug 19 23:38:18 CST 2020
Unique Patch ID: 22468836
Created on 26 Sep 2018, 10:28:47 hrs PST8PDT
Bugs fixed:
20299015, 27870645, 18681862, 24433711, 18139690, 17343514, 22502493
21972320, 25369547, 19727057, 21352646, 26474853, 23177648, 25879656
20803583, 28364007, 19271443, 19854503, 17551709
3.回退补丁
3.1 RAC环境的修补程序卸载说明
跟着这些步骤:
- 在一个节点上关闭实例。
- 在步骤1中关闭节点上的所有nodeapps服务:
srvctl stop nodeapps -n <节点名称> - 在步骤1中回滚节点上的补丁。
使用指定的rollback参数运行OPatch实用程序以回滚此SPU中包含的所有分子补丁。如果未在Oracle Home中安装分子,则回滚将忽略它。如果将分子作为合并修补程序的一部分安装,则不会回滚。如果需要回滚合并已应用到Oracle Home的补丁程序,则需要单独进行回滚。
opatch nrollback -idFile $ ORACLE_HOME / cpu / 2018 /rollback_all.lst -local
如果您已在先前的SPU之上应用了该SPU,则可能只想回滚此SPU 中新的分子补丁。为此,请使用以下命令:
opatch nrollback -idFile $ ORACLE_HOME / cpu / 2018 /rollback_new.lst -local
您还可以根据需要回滚单个分子或分子列表。请参阅nrollback命令上的OPatch文档 。
如果有错误,请参阅“ 已知问题”。
- nodeapps在步骤1中启动节点上的所有服务:
srvctl start nodeapps -n <节点名称> - 在步骤1中启动节点上的实例。
- 在群集中的所有其余节点上重复步骤1-5。
- 有关在回滚此SPU时分子含量的信息,请参阅My Oracle Support文档2006094.1 “ 2015年7月重要补丁更新数据库补丁安全漏洞分子映射”。
3.2修补程序RAC环境的卸载后说明
跟着这些步骤:
-
转到用于“ 非RAC环境的修补程序卸载说明”中的说明的节点。
-
遵循《针对非RAC环境的补丁安装后说明》中列出的同一组说明。
在您从该实例执行步骤时,用户可以照常启动和访问所有其他实例。 -
一次重新启动所有节点上的所有nodeapps服务:
srvctl start nodeapps -n <节点名称> -
在所有节点上重新启动实例。
您无需在其他节点上运行安装后的步骤。(即,仅在步骤1中选择的节点上执行步骤1和2,并且仅执行一次步骤3和4。)