之前幫別人處理過一次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; ---升級腳本
-----注意:從12.2開始,sqlplus不能再支持執行catupgrd.sql。需要使用類似腳本調用(具體看腳本說明)$ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql
SQL> ho
$ cat /tmp/upgrade.log |grep \^* -------查看upgrade,使用grep過濾,如果為下面結果,說明升級版本沒有錯誤
完成后按正常模式啟動一個節點
SQL> startup
SQL> @ ?/rdbms/admin/catuppst.sql;
SQL> @ ?/rdbms/admin/utlrp.sql; ----可多次執行,確保數據庫中對象編譯后,都是有效的。
9.在GI中添加資源。重啟數據庫即可