一、停止資料庫相關進程
分別在兩台機器上停止資料庫
sqlplus "/as sysdba";
sql>shutdown immediate
lsnrctl stop
相關閱讀:Oracle10201 RAC升級到10204後匯出資料時報EXP-00056錯誤
也可以用srvctl工具在一個節點上完成
$ORA_CRS_HOME/bin/srvctl stop service -d rac 停止service.(對於RAC資料庫,首先要停止所有節點中的Service服務,如果建立了service的話)
$ORA_CRS_HOME/bin/srvctl stop database -d rac 停止RAC資料庫中所有執行個體
$ORA_CRS_HOME/bin/srvctl stop listener -n racnode1 停止節點racnode1上監聽
$ORA_CRS_HOME/bin/srvctl stop listener -n racnode2 停止節點racnode2上監聽
二、安裝clusterware補丁
su - Oracle
cd /home/oracle/Disk1
./runInstaller
彈出OUI的歡迎視窗後,直接點擊下一步:
選擇軟體的目錄,這裡我們要首先選擇OraCrs10g的主目錄,點擊Name中的下拉框,選擇oracrs10g_home
OUI 自動選中了所有可用的節點,直接點擊下一步
安裝環境的檢查,如無異常,直接點擊下一步即可:(在安裝oracle軟體時沒有問題的話,這個應該也沒有太大問題)
顯示摘要資訊,如無異常點擊install
安裝結束退出(在結束的時候,會出現一個提示資訊,讓你分別關掉兩個節點的crs服務,並執行root102.sh指令碼,步驟如下)
以root使用者登陸
/etc/init.d/init.crs stop
sh $ORA_CRS_HOME/install/root102.sh (其中$ORA_CRS_HOME在root使用者中沒有定義環境變數,請輸入實際的全路徑)
三、安裝資料庫軟體補丁
由於前面執行root102.sh時,會自動重新crs,因此在升級資料庫軟體前,需要執行第一步中停止相關進程的操作,比如依次關閉資料庫、監聽等服務
彈出OUI的歡迎視窗後,直接點擊下一步:
選擇軟體的目錄,這裡我們要首先選擇OracDb的主目錄,點擊Name中的下拉框,選擇oradb10g_home1
OUI 自動選中了所有可用的節點,直接點擊下一步
安裝環境的檢查,如無異常,直接點擊下一步即可
提示是否要綁定metalink,可以根據實際情況進行選擇
如無問題直接點擊install
在此期間,OUI會自動快顯視窗如下,提示在RAC環境中的各個節點執行指定的root.sh指令碼,注意是以root身份執行:
四、升級資料庫(可以通過兩種方法來實現,dbua和執行指令碼的方式)
首先我們以dbua圖形介面的方式來實現
對於RAC資料庫環境下的升級,首先需要啟動各節點的監聽服務,操作如下:
$ORA_CRS_HOME/bin/srvctl start listener -n racnode1
$ORA_CRS_HOME/bin/srvctl start listener -n racnode2
執行dbua命令,通過視窗介面選擇升級資料庫:
選擇要升級的(並且當前可用的資料庫),這裡只有一個並已被預設選中,然後輸入sys使用者密碼:
選擇是否在升級後自動編譯無效的對象,預設是選中的,直接按下一步
開始執行升級,本步操作較多,費時較久,請耐心等待:
述操作完成後,點擊ok即可,OUI彈出整個操作的返回結果
點擊close按鈕關閉視窗。
此時可以登陸任意節點,以sqlplus命令列串連進去查詢資料庫的版本:
sqlplus "/ as sysdba"
sql>select * from gv$instance;
確認無誤後,升級完成
另一種方法是以指令碼的方式來實現
在升級資料庫的時候,要確保crs的相關服務和監聽服務都要啟動
啟動到nomount狀態修改參數
sqlplus "/as sysdba"
SQL>STARTUP NOMOUNT
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
SQL> SHUTDOWN
重建資料字典
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql #此處執行時間較長
SQL> SHUTDOWN IMMEDIATE
SQL> SPOOL OFF
編譯無效對象
SQL> STARTUP
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql
SQL>ALTER SYSTEM SET CLUSTER_DATABASE=TRUE scope=spfile;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
升級後檢查升級是否成功
su – oracle
sqlplus "/as sysdba"
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
SQL>select * from gv$instance;