天萃荷净
Oracle研究中心学习笔记:分享一篇关于Oracle数据库RAC环境中安装升级patch补丁的案例,在安装升级过程遇到one-off patch错误。
本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客
本文链接地址: 比较BT的一个one-off patch
今天给某客户(买票难的问题,你们懂的)打一个one-off patch(11814167),遇到几个小问题,其中有件怪事,跟熊哥讨论了一下,他也感觉确实有点奇怪,按理说不应该啊。
首先来看下install patch(11814167)的基本步骤(大家可以参考readme):
1. 首先检查环境,使用了哪种存储方式?opatch 版本,当前集群状态?文件系统空间?
2. 解压patch以及update opatch(readme提到需要11.2.0.1.5以上版本的opatch);
unzip p11814167_112010_AIX64-5L.zip
unzip p6880880_112000_AIX64-5L.zip -d /grid/11.2
unzip p6880880_112000_AIX64-5L.zip -d /oracle/app/11.2
cluster中所有节点都需要更新.
3. 检查当前opatch信息并保存;
./opatch lsinventory -detail -oh /grid/11.2
./opatch lsinventory -detail -oh /oracle/app/11.2
4. 停止所有资源(包括crs,db以及em等等)
/oracle/app/11.2/bin/srvctl stop home -o /oracle/app/11.2 -s /tmp/morapp1.log -n morapp1-19
/oracle/app/11.2/bin/srvctl stop home -o /oracle/app/11.2 -s /tmp/morapp2.log -n morapp1-19
5. 以root用户执行如下脚本:
# /crs/install/rootcrs.pl -unlock --用法
node1: /grid/11.2/crs/install/rootcrs.pl -unlock
node2: /grid/11.2/crs/install/rootcrs.pl -unlock
6. patch for GI home
user by GI home owner:
node1: /grid/11.2/OPatch/opatch napply -oh /grid/11.2 -local /oradata1/patch/11814167
node2: /grid/11.2/OPatch/opatch napply -oh /grid/11.2 -local /oradata1/patch/11814167
7. Run the pre script for DB component of the patch
user by ORACLE_HOME owner
node1: /oradata1/patch/11814167/custom/server/11814167/custom/scripts/prepatch.sh -dbhome /oracle/app/11.2
node2: /oradata1/patch/11814167/custom/server/11814167/custom/scripts/prepatch.sh -dbhome /oracle/app/11.2
8. Apply the patch to DB Home :
As the database home owner execute:
node1: /oracle/app/11.2/OPatch/opatch napply -oh /oracle/app/11.2 -local /oradata1/patch/11814167/custom/server/11814167
node2: /oracle/app/11.2/OPatch/opatch napply -oh /oracle/app/11.2 -local /oradata1/patch/11814167/custom/server/11814167
9. Run the post script for DB component of the patch
As the database home owner execute
node1: /oradata1/patch/11814167/custom/server/11814167/custom/scripts/postpatch.sh -dbhome /oracle/app/11.2
node2: /oradata1/patch/11814167/custom/server/11814167/custom/scripts/postpatch.sh -dbhome /oracle/app/11.2
10. Run the post script by root.
/grid/11.2/rdbms/install/rootadd_rdbms.sh
/grid/11.2/crs/install/rootcrs.pl -patch
cluster中所有节点顺序执行。
11. Start the GI managed resources that were earlier running from DB homes
user by oracle_home owner.
node1: /oracle/app/11.2/bin/srvctl start home -o /oracle/app/11.2 -s /tmp/morapp1.log -n morapp1-19
node2: /oracle/app/11.2/bin/srvctl start home -o /oracle/app/11.2 -s /tmp/morapp1.log -n morapp2-19
12. 检查clsuter是否正常正常,可以使用crs_stat -t查询当前cluster资源使用情况。
如果大家看过readme就知道,oracle其实推荐的方式不是这种,是采取opatch auto的方式,但是我今天在开始使用这种方式的时候,发现了这种其实不好好,所谓auto的目的其实是将一系列的操作集成到一起了,虽然这样大大的简化了patch的工作量,但是这整个过程确显得跟黑匣子一样,不