ORACLE10201手動升級到10204

lnwxzyp發表於2009-09-21
      剛剛從自己的本機上測試成功將oracle 10201升級到了10204,這裡說手動是因為還有DBUA-database upgrade assistant的自動升級工具,因為剛開始沒有仔細的看patch package裡面的readme,網上隨意的搜了一下然後就開始升級,首先是下載升級補丁,這裡參考了蓋老師無私奉送的下載路徑,大家可以參考以下,裡面的補丁比較齊全:
http://www.eygle.com/archives/2008/06/9208_10204_patch.html
下載下來解壓縮之後點選安裝,安裝之前首先要將oracle的services全部stop,執行→services.msc,將裡面的oracle開啟的服務全部停掉,然後選擇原來的安裝路徑然後開始安裝,安裝完成之後,開啟oracleservice+ORACLE_SID和監聽服務,然後進入升級模式
SQL> STARTUP UPGRADE
待資料庫open之後設定輸出日誌,已備檢查升級時有無錯誤發生
SQL> SPOOL C:\upgrade_info.log
然後執行
ORACLE_HOME\RDBMS\Admin\cat\catupgrd.sql
執行的時間比較長,因為我本機是歸檔模式,同時是預設在閃回區的檔案位置,因此在執行過程中發生了歸檔日誌滿,同時redolog也無法離線的情況,然後指令碼就一直不往下執行,最後實在等不及,關掉了命令列視窗,再次登陸的時候就發生了錯誤:
ORA-16038: 日誌 1 序列號 236 無法歸檔
ORA-19809: 超出了恢復檔案數的限制
ORA-00312: 聯機日誌 1 執行緒 1: '/data/oradata/demo/redo01.log'
解決錯誤:
sql> conn / as sysdba
sql> shutdown abort;
sql> startup mount;
sql> recover database until cancel;
sql> alter database open resetlogs;
執行之後,同時刪除歸檔檔案,另外又在pfile裡面手動指定了另外的歸檔路徑,重新建立了spfile,然後繼續重複執行剛開始的catupgrd.sql指令碼,執行完成之後,還有一個utlrp.sql指令碼,是和前一個指令碼在同一個資料夾下,這個指令碼在readme裡面是建議執行,但是不執行也可以,我這裡進行了執行,但是報錯說有的包已經失效,後來仔細閱讀了自述檔案,說升級之後有54個無效的物件,這些無效物件不會對資料庫的使用產生影響。
最後切換到正常模式
SQL>shutdown immediate
SQL>startup
SQL> select * from v$version;
BANNER----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
看來以後還是要重視readme的閱讀才可以啊。另外以後給伺服器升級還是要多測試測試才能上到生產環境,不然一旦出現問題不管是當時還是以後對生產造成影響就麻煩了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-615119/,如需轉載,請註明出處,否則將追究法律責任。

相關文章