以前幫別人處理過一次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