Oracle-11g-R2(11.2.0.3.x)RAC Oracle Grid & Database 零宕机方式回滚 PSU(自动模式)
回滚环境:
1.源库版本:
Grid Infrastructure:11.2.0.3.15
Database:11.2.0.3.15
2.目标库版本:
Grid Infrastructure:11.2.0.3.13
Database:11.2.0.3.13
执行步骤:
1.备份源库(root & grid & oracle)
在待回滚的节点执行备份,以防止回滚失败后导致软件故障。
2.创建 OCM response 文件(grid $ oracle,每个节点)a.备份 ASM 实例参数文件(grid)以 / as sysasm 身份进入 sqlplus 环境,执行语句 create pfile='/home/grid/init_asm.ora' from spfile;b.备份 ASM 实例参数文件(oracle)以 / as sysdba 身份进入 sqlplus 环境,执行语句 create pfile='/home/oracle/init_db.ora' from spfile;c.备份集群信息(root):进入 gird 用户的 $ORACLE_HOME/bin 目录下(例如:/u01/app/11.2.0/grid/bin)./crsctl query css votedisk./ocrcheck./ocrconfig -manualbackupd.备份数据库(oracle):以 / as sysdba 身份进入 sqlplus 环境,执行语句 alter system archive log current;随后调用数据库全备份脚本备份数据库。e.关闭待回滚节点(oracle $ root)f.备份 Grid Infrastructure 的 OPatch(root)进入 gird 用户的 $ORACLE_HOME/OPatch 目录下(例如:/u01/app/11.2.0/grid/OPatch)执行 tar -cpf ../gridOPatch.tar.20161014 ./g.备份 Database 的 OPatch(root)进入 oracle 用户的 $ORACLE_HOME/OPatch 目录下(例如:/u01/app/oracle/product/11.2.0/db_1/OPatch执行 tar -cpf ../oracleOPatch.tar.20161014 ./h.备份 Grid Infrastructure 及 Database 软件(root)进入 Grid Infrastructure 及 Database 安装根目录下(例如:/u01/app)执行 tar -cpf ../u01.tar.20161014 ./ 备份软件。e.重启待回滚节点 CRS(root)以 root 用户登录欲节点,进入 Grid Infrastructure 的 BIN 目录下,输入 ./crsctl start crs
分别以 grid 及 oracle 进入Grid Infrastructure 及 Database 的 $ORACLE_HOME/OPatch/ocm/bin 目录下。
执行 ./emocmrsp -no_banner -output <specify_the_location>/file.rsp 例如:./emocmrsp -no_banner -output ~/grid.rsp
生成 response 文件的导航界面如下:
注意:要求输入 Email 时可为空,并在随后的不告知安全事件中输入 Yes。
3.关闭 EM 代理进程(oracle,每个节点)
在为 Grid Infrastructure 及 Database 打补丁之前,需要关闭 EM 代理进程。
需要以 oracle 用户进入 Database 的 $ORACLE_HOME/bin 目录下,执行 ./emctl stop dbconsole
4.回滚补丁(root & oracle,每个节点)
注意:补丁回滚将会回滚至上次升级补丁之前的状态。
a.切换服务(oracle)注意:采用逐一回滚的方式,实现零宕机回滚。因此回滚一个节点时,应将该节点的所有服务切换到其他节点上。其中,切换服务命令类似如下。srvctl relocate service -d <db_name> -s <service_name> -i <orig_instance_name> -t <target_instance_name>b.关闭数据库实例(oracle)以 oracle 用户登录节点,在 sqlplus 环境下使用以下命令关闭数据库实例。alter system checkpoint; 更新检查点。alter system archive log current; 更新归档日志。shutdown immediate 关闭节点数据库。c.解压缩补丁包(grid)以 grid 用户解压缩待回滚补丁包。注意:例如从 11.2.0.3.9 回滚至 11.2.0.3.6,则需解压缩 11.2.0.3.9 的补丁包。d.为 Grid Infrastructure 回滚补丁(root)以 root 用户进入 Grid Infrastructure 的 $ORACLE_HOME/OPatch 目录下。执行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <GI_HOME> -rollback -ocmrf <ocm response file>例如:./opatch auto /u01/setup/21150904/20996944 -oh /u01/app/11.2.0/grid -rollback -ocmrf /u01/setup/grid.rspe.为 Database 回滚补丁(root)以 root 用户进入 Database 的 $ORACLE_HOME/OPatch 目录下。执行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <DATABASE_HOME> -rollback -ocmrf <ocm response file>例如:./opatch auto /u01/setup/21150904/20996944 -oh /u01/app/oracle/product/11.2.0/db_1/ -rollback -ocmrf /u01/setup/oracle.rspf.为其余节点回滚补丁当单个节点回滚完毕后,选择回滚下一个节点,重复执行 a~e 步骤操作,直至所有节点回滚完毕。
5.回退 SQL 文件至数据库(oracle,单个节点)
待 RAC 补丁回退完毕后,在当时运行 catbundle.sql 脚本的节点上,运行 catbundle_PSU_<database_SID_PREFIX>_ROLLBACK.sql 脚本,以回退 SQL 文件至数据库。
SQL> @catbundle_PSU_<database_SID_PREFIX>_ROLLBACK.sql
其中 database_SID_PREFIX 为实例的前缀。
参考文档:
《Patch Installation and Deinstallation For 11.2.0.3.x GI PSU (文档 ID 1494646.1)》