Categories
程式開發

Oracle 19c GI升级,遭遇未知BUG也不慌


本文由 dbaplus 社群授权转载。

大家好,今天咱来实践19C的GI升级。

前面提到过,Oracle 19C替代12C将成为Oracle线条接下来这两年的主要工作。笔者所在客户现场的后续数据库集成安装都将以19C为标准版本。本文就以19C打最新的GIRU(19.7.0.0.200414)步骤及遇到的问题做总结分享。

GIRU实施步骤

补丁升级均采取滚动升级方式进行。

1、19更新OPatch版本

打GIRU(19.7.0.0.200414)所需要的OPatch版本为12.2.0.1.19及以上最新版本。建议使用19C版本进行补丁升级,所以我们这次使用的OPatch是19C,具体命令如下:

更换GI HOME的opatch版本:
su - grid
cd /oracle/app/19.3.0/grid/
cp /oraclelog/pa/opatch_20200622/p6880880_190000_Linux-x86-64.zip ./
mv OPatch OPatch_20200622
unzip p6880880_190000_Linux-x86-64.zip
chown -R grid:oinstall OPatch
chmod -R 775 OPatch
/oracle/app/19.3.0/grid/OPatch/opatch version

更换DB HOME的opatch版本:
su - oracle
cd  /oracle/app/oracle/product/19.3.0/db
cp /oraclelog/pa/opatch_20200622/p6880880_190000_Linux-x86-64.zip ./
mv OPatch OPatch_20200622
unzip p6880880_190000_Linux-x86-64.zip
/u01/app/oracle/product/12.2.0.1/dbhome_1/OPatch/opatch version

2、目录备份

该备份将作为补丁升级出错,rollback也报错时的最后救命稻草。备份app及oraInventory两目录即可。

ps -ef|grep LOCAL=NO|awk '{print $2}'|xargs kill -9
srvctl stop instance -d racdb -n racdb1
su - root
/oracle/app/19.3.0/grid/bin/crsctl stop crs
/oracle/app/19.3.0/grid/bin/crsctl stat res -t
tar -cvf /oraclelog/pa/opatch_20200622/gi_home_`hostname`_20200622.tar /oracle/app
tar -cvf /oraclelog/pa/opatch_20200622/oraInventory_`hostname`_20200622.tar /oracle/app/oraInventory

备份目录为啥要停库停CRS?部分看官们估计会有疑问。这个还得从很早之前一次Oracle 11G GI PSU升级说起,当时笔者碰到这样一种情况,在确认当时备份命令运行正常,备份出来的文件大小正常情况下,在不停CRS的情况下备份出来的文件竟然不可用…还好当时值得庆幸的是补丁回滚成功了。所以这次“惊魂动魄”之后这个备份都“唯经验论”了。

原文链接:【https://www.infoq.cn/article/btt55rOCb4vE74RS2PfM】。未经作者许可,禁止转载。