oracle版本升级

以前帮别人处理过一次11.2.0.3升级到11.2.0.4的问题。
大体背景介绍一下:以前因为一个第三方的人员在升级一套11.2.0.3的rac环境到11.2.0.4。给别人搞坏了。紧急联系到我帮忙处理。
使用一样相似的方法:升级了一套11.2.0.4到12.2.0.1的rac
大体记录一下操做流程
listenr.log+tnsnam.ora等
1.中止集群
# ./crsctl stop crs
2.删除文件
# mkdir /u01/recyclebin/
# mv /etc/oratab /u01/recyclebin/
# mv /etc/oraInst.loc /u01/recyclebin/
# mv /usr/local/bin/dbhome /u01/recyclebin/
# mv /usr/local/bin/oraenv /u01/recyclebin/
# mv /usr/local/bin/coraenv /u01/recyclebin/
# mv /etc/oracle/olr.loc* /u01/recyclebin/
# mv /etc/oracle/ocr.loc.* /u01/recyclebin/
# mv /etc/oracle/scls_scr /u01/recyclebin/
3.使用dd命令清除ocr盘上的asm头信息 必须确认是ocr盘
# /usr/sbin/oracleasm querydisk -d ocr <<<-------确认哪块盘是ocr盘
# dd if=/dev/zero of=</dev/sdb1--表明仲裁盘> bs=1024k count=300
4.重建asm磁盘
# /usr/sbin/oracleasm createdisk OCR /dev/mapper/mpath32p1
5.安装11.2.0.4GI+DB (安装过程略) 注意:集群名和以前一致
6.安装GI完成以后,以前的未清理的asm磁盘也能识别到了
7.修改$ORACLE_HOME/bin/oracle的属组
chown oracle:asmadmin $ORACLE_HOME/bin/oracle
8.在其中一个节点对数据库作升级操做
# sqlplus / as sysdba
SQL> startup upgrade;
SQL> spool /tmp/upgrade.log
SQL> set echo on
SQL> @ ?/rdbms/admin/catupgrd.sql; ---升级脚本          sql

-----注意:从12.2开始,sqlplus不能再支持执行catupgrd.sql。须要使用相似脚本调用(具体看脚本说明)$ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql数据库

SQL> ho
$ cat /tmp/upgrade.log |grep \^* -------查看upgrade,使用grep过滤,若是为下面结果,说明升级版本没有错误oracle

完成后按正常模式启动一个节点
SQL> startup
SQL> @ ?/rdbms/admin/catuppst.sql;
SQL> @ ?/rdbms/admin/utlrp.sql; ----可屡次执行,确保数据库中对象编译后,都是有效的。
9.在GI中添加资源。重启数据库便可app