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