Oracle數(shù)據(jù)庫升級也并非簡單的事,這篇文章對Oracle那點事做了較詳細(xì)的介紹:Oracle數(shù)據(jù)庫升級或數(shù)據(jù)遷移方法研究
我還屬于Oracle的菜鳥,就不獻(xiàn)丑介紹了。
下面我就簡單總結(jié)下,Oracle同版本升級的經(jīng)歷:
升級數(shù)據(jù)庫:
1. 先檢查數(shù)據(jù)庫當(dāng)前版本:SELECT * FROM v$version;
2. 使用RMAN或exp 進(jìn)行全庫備份
【這一步非常非常重要,因升級到數(shù)據(jù)部分時,虛擬機沒空間了,導(dǎo)致VM崩潰,升級失敗.orcl庫也掛了,不得不從另一臺Oracle上創(chuàng)建了一個Orcl,然后,冷備遷移過來,才得以重新升級。】
如:RMAN全備
export ORACLE_SID=orcl
rman target /
RMAN>backup full database plus archivelog //全備數(shù)據(jù)庫,并且包括ArchiveLog。
3. 最后按下面步驟進(jìn)行升級
<1> 先知道Oracle 7個更新文件的作用:
第一 和 二個包表示database , 如果升級數(shù)據(jù)庫,只需要這2個文件即可。
第三個包表示grid, 用來升級RAC 的CRS。如果升級RAC 要先用這個文件。
第四個表示客戶端,
第五個表示gateways,
第六個表示 examples, 這個是我們的示例文件安裝包。
<2> 升級Oracle數(shù)據(jù)庫
首先將第一和二個zip壓縮包上傳,并在同一個目錄下解壓,因為,它兩的目錄結(jié)構(gòu)基本一致,并且這兩壓縮包的內(nèi)容需要合并后才能,執(zhí)行runInstaller文件。所有要在同一個目錄下解壓,這樣會直接合并。
<3> 運行runInstaller,若沒有圖像界面會可能就需要有應(yīng)答文件了,這個就需要再查了,
我測試時,有圖形界面,所以直接用圖形界面來升級:
需要注意幾個地方:
A. 這是第一個地方,這里需要點,“Skip software updates"跳到軟件更新
B.這里是選項安裝新Oracle軟件的位置,這里不能寫舊的位置。
另注: 磁盤空間一定要5~10G, Oracle11.2.0.1升級到11.2.0.3需要4.1G。
C. 第三點:需要注意: /etc/oratab這個文件。
因為,更新到最后是更新數(shù)據(jù)庫,更新數(shù)據(jù)庫時,必須要有一個數(shù)據(jù)庫是運行的.才能執(zhí)行,并且更新數(shù)據(jù)庫時,它是通過oratab文件來讓你選擇通過那個運行的數(shù)據(jù)庫來嘗試更新數(shù)據(jù)庫。
4. 數(shù)據(jù)庫更新完后,需要做以下事情:
首先,升級完成后,需要將Oracle必須的環(huán)境變量修改為升級后的Oracle軟件路徑。
需要修改: ORACLE_HOME.
如我的環(huán)境:
Oracle11.2.0.1時:
ORACLE_BASE=/home/oracle/ora
ORACLE_HOME=$ORACLE_BASE/product/11g/db_1
升級后,Oracle版本為:11.2.0.3,新的家目錄為:
Oracle11.2.0.3: ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1
<1> 先執(zhí)行這個文件,用sysdba的權(quán)限:
SQL> SPOOL update.info SQL> $ORACLE_HOME/rdbms/admin/utlu112i.sql SQL> SPOOL OFF
查看日志是否有錯誤。
<2> 關(guān)閉數(shù)據(jù)庫,并更新啟動。
SQL> shutdown immediate SQL> startup upgrade SQL> select * from v$version; #查看Oracle的版本。 SQL> select status from v$instance; STATUS ------------ OPEN MIGRATE #下面開始執(zhí)行升級腳本。 SQL> SPOOL update-info.log SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql #下面是查看升級結(jié)果的; 這個不是很確定,因為參考博客的環(huán)境是, # 是9i 升 10g #SQL> @$ORACLE_HOME/rdbms/admin/utlu102s.sql SQL> SPOOL OFF
完成后,需要查看升級日志,是否有保錯,若有,則重新執(zhí)行升級SQL腳本。
#升級完成后,需要重啟DB. SQL> shutdown immediate SQL> startup #下面是執(zhí)行重新編譯無效對象 SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql #查看是否還存在無效對象,若為0,則表示升級完成。否則重新執(zhí)行編譯。 SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID'; SQL> select name from v$database; #確認(rèn)數(shù)據(jù)庫的SID是否正確。 SQL> show user; #確認(rèn)當(dāng)前是否為sys用戶。 SQL> select tablespace_name, bytes from dba_data_files; #確認(rèn)表空間大小是否正確. #下面這個步驟網(wǎng)文中沒有,這是尚觀視頻中提到的,作用不明. #SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql #最后,重啟數(shù)據(jù)庫沒有問題就是升級成功了。 SQL> select status from v$instance; STATUS ------------ OPEN #注意,成功打開數(shù)據(jù)庫后,這里將是OPEN,而非OPEN MIGRATE
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點
疑難解答
圖片精選