Oracle 11GR2 RAC 最新补丁 190416 安装指导
前 言
近期,由于 Oracle 发布了第一季度的补丁程序包,而安全又被重视了很多,那么我们运维的数据库则需要打升级补丁,避免被扫描到漏洞。天天在打补丁,连做梦都是,这里总结分享一下,避免后人踩坑,需要的可仔细阅读实践。
Oracle CPU 的全称是 Crirical Patch Update,Oracle 对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。Oracle PSU 的全称是 Patch Set Update,Oracle 对于其产品每个季度发行一次补丁包,包含了 bug 的修复。Oracle 选取被用户下载数量多且被验证过的具有较低风险的补丁放入每个季度的 PSU 中。在每个 PSU 中不但包含 bug 的修复而且还包含了最新的 CPU。PSU 通常随着 CPU 一起发布。
一、 补丁下载及准备
通过 MOS 账号登陆到My Oracle Support,进入到 补丁程序和更新程序 然后选择平台和补丁号或者 Bug 号 点击搜索,便可以去寻找自己想要找的程序包了。
选择到这个界面,也可以先进行补丁分析,在 下载 左边有个 使用 OPatch 进行分析按钮,可进行分析。
到这个界面直接下载就好了!
同理,29255947 补丁也可以按照上面方法下载,不过要是没有 MOS 账号的话,是无法登陆下载的,那么也不用担心,我这里已经下载好了,公众号【JiekeXu之路】后台回复【RAC补丁】即可获得安装包。
1、数据库环境
操作系统版本:suse11sp4
数据库版本 :Oracle 11.2.0.4 x64 RAC
Grid :11.2.0.4
Oracle database :11.2.0.4
目标版本:11.2.0.4.190416
2、准备内容
GI PSU:p29255947_112040_Linux-x86-64.zip
Opatch:p6880880_112000_Linux-x86-64.zip
说明:为了区别以前的补丁包,这里将下载的程序包重命名为这个,以示区别。
p6880880_112000_Linux-x86-64.zip :p6880880_112000_Linux-x86-64_11.2.0.3.21.zip
p29255947_112040_Linux-x86-64.zip:p29255947_112040_Linux-x86-64_11.2.0.4.190416.zip
注意:需要 Opatch 版本在 11.2.0.3.21 及以上,升级前安装目录空闲空间必须有30 G 以上,这两个条件必须同时满足才可成功。
检查环境是否为 11.2.0.3.21 版本:
[root@JiekeXu01 ~]# su - oracle
[root@JiekeXu01 ~]$ cd $ORACLE_HOME/OPatch
[oracle@JiekeXu01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.18
OPatch succeeded.
3、更新Opatch版本(如果版本符合则省略)
分别在各个节点上更新OPatch版本,做如下操作。
(1) 上传 p6880880_112000_Linux-x86-64_11.2.0.3.21.zip 到 /u01/app/soft 目录下。
(2) .将 grid 和 oracle 用户 ORACLE_HOME 目录下的原 Opatch 目录改名备份。
grid 用户:
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak0531
Oracle 用户:
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak0531
(1) .grid解压压缩包
-- $ORACLE_HOME: /u01/app/product/11.2.0/db
-- $GRID_HOME: /u01/app/product/11.2.0/grid
cd /u01/app/soft
unzip p6880880_112000_Linux-x86-64_11.2.0.3.21.zip -d $GRID_HOME
unzip p6880880_112000_Linux-x86-64_11.2.0.3.21.zip -d $ORACLE_HOME
mv OPatch $ORACLE_HOME/
cd $ORACLE_HOME/OPatch
检查更新后的opatch 版本
./opatch version
[oracle@JiekeXu01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.21
OPatch succeeded.
二.GI打补丁
1、检查inventory有效性:
Grid用户执行:
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
2、生成 ocm.rsp 文件
root 用户执行:cd /u01/app/product/11.2.0/grid/OPatch/ocm/bin
./emocmrsp
(回车 yes两步操作)
3、解压patch压缩包并给grid权限
解压补丁包 p29255947_112040_Linux-x86-64.zip
grid 用户:cd /u01/app/soft
unzip p29255947_112040_Linux-x86-64_11.2.0.4.190416.zip
chown -R grid:oinstall 29255947
chmod -R 775 29255947
4、执行命令打补丁
root用户:/u01/app/product/11.2.0/grid/OPatch/opatch auto /u01/app/soft/29255947 -oh /u01/app/product/11.2.0/grid -ocmrf /u01/app/product/11.2.0/grid/OPatch/ocm/bin/ocm.rsp
注意:这里有个小插曲,在 Linux 系统中这么执行是没有问题的,但是 AIX 中却会出错,则需要指定一下环境变量 export USER=grid 然后在执行上面的命令。
5、在其他节点也执行 2,3,4 步骤
生成ocm.rsp
解压 patch
root执行命令(AIX需要注意export USER=grid)/u01/app/product/11.2.0/grid/OPatch/opatch auto /u01/app/soft/29255947 -oh /u01/app/product/11.2.0/grid -ocmrf /u01/app/product/11.2.0/grid/OPatch/ocm/bin/ocm.rsp
6、检查GI打补丁情况
grid用户,两个节点分别打补丁$ORACLE_HOME/OPatch/opatch lsinventory
三.DB打补丁
1、root用户,两个节点分别打补丁
/u01/app/product/11.2.0/db/OPatch/opatch auto /u01/app/soft/29255947 -oh /u01/app/product/11.2.0/db -ocmrf /u01/app/product/11.2.0/grid/OPatch/ocm/bin/ocm.rsp
注意:和前面一样,在 Linux 系统中这么执行是没有问题的,但是 AIX 中却会出错,则需要指定一下环境变量 export USER=oracle 然后在执行上面的命令。
2、Oracle用户更新数据库字典表信息:(其中一个节点执行即可)
cd $ORACLE_HOME/rdbms/admin
$ sqlplus / as sysdba
SQL>@catbundle.sql psu apply
SQL> @utlrp.sql
SQL > @dbmsjdev.sql
SQL > exec dbms_java_dev.disable
$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
3、检查数据库版本
Oracle用户:$ORACLE_HOME/OPatch/opatch lsinventory
sqlplus / as sysdba
col action_time for a32
col action for a10col namespace for a10
col version for a10col BUNDLE_SERIES for a10
col comments for a30
set lin 300
select * from dba_registry_history;
ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SER COMMENTS
-------------------------------- ---------- ---------- ---------- ---------- ---------- ------------------------------
*************************************省略内容*******************************************
col ACTION_TIME for a35
col COMMENTS for a30
select ACTION_TIME,COMMENTS from registry$history;
ACTION_TIME COMMENTS
------------------------------ ------------------------------
24-AUG-13 12.03.45.119862 PM Patchset 11.2.0.2.0
19-JAN-16 12.10.26.734097 AM Patchset 11.2.0.2.0
26-JAN-19 10.45.57.188831 AM PSU 11.2.0.4.180116
26-JAN-19 11.52.32.664077 AM PSU 11.2.0.4.19041611.2.0.4.190416
那么,按照这个步骤执行是没有问题的,基本上踩得坑已经说明了,切记目录、版本要满足要求,要是需要回退的话可以去看官方文档或者阅读 README.html。这里不做说明,感兴趣的朋友可自行阅读,若没有 MOS 账号的话,是无法登陆下载的,那么也不用担心,我这里已经下载好了,公众号【JiekeXu之路】后台回复【RAC补丁】即可获得安装包及 README.html。
最后一点叮嘱,在生产环境中,升级过程中的变量因素是不可控制的,可以一个节点一个节点操作,保证生产环境高效稳定的运行,不过也需要做好备份哦,备份好相关的数据,就可以放心大胆的干了。好啦,今天就到这里了,最近有点忙,更新的频率有点低,望各位小伙伴们见谅了。
推荐阅读:
万字详解Oracle架构、原理、进程,学会世间再无复杂架构
Oracle 11gR2 RAC 集群服务启动与关闭总结
Windows 环境下 Oracle11gR2 安装与卸载
关系型数据库 Oracle 之 resetlogs 的意义
史上最全的 OGG 基础知识整理
资源分享:
5T 技术资源大放送!包括但不限于:Linux,Python,Oracle,MySQL,Java,前端,大数据,具体获取方式可关注本公众号或者添加我微信获取~~~
长按添加微信,可加群(备注加群)
获取更多付费资源
码字不易,点赞、转发是一种对作者的鼓励!
如果觉得还不错,点个“在看”后转发