**環境: **RHEL5.4 + Oracle 10.2.0.4
**目的: **在本機將數據庫升級到11.2.0.4
之前總結的Oracle數據庫異機升級:http://www.cnblogs.com/jyzhao/p/4813324.html
本文簡單總結下在本機升級的大體步驟,和異機升級的不同點,及需要注意的地方。下面為主要步驟:
- 新路徑安裝11.2.0.4軟件
- 臨時生效11g軟件環境變量腳本
- 創建必須的目錄
- 10g庫升級前檢查
- 備份10g數據庫
- 升級10g數據庫到11g
1. 新路徑安裝11.2.0.4軟件
比如我這里10.2.0.4是`/opt/app/oracle` 11.2.0.4就選擇安裝到`/opt/app/oracle11` 即`$ORACLE_BASE`就不一樣。
2. 臨時生效11g軟件環境變量腳本
vi ora11.env ``` export ORACLE_BASE=/opt/app/oracle11 export ORACLE_HOME=/opt/app/oracle11/product/11.2.0/dbhome_1 export ORACLE_SID=vas export PATH=$ORACLE_HOME/bin:$PATH ``` 需要11g環境變量時, `source /home/oracle/ora11.env`即可。 需要10g環境變量時,新窗口重新登陸oracle用戶即可。
3. 創建必須的目錄
此時環境變量配置是Oracle 11g的。 ``` mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile ```
4. 10g庫升級前檢查
此時環境變量配置是Oracle 10g的,但執行的是11g軟件中的腳本。 ``` spool upgrade.info @/opt/app/oracle11/product/11.2.0/dbhome_1/rdbms/admin/utlu112i.sql spool off ``` 根據檢查結果對數據庫的修正,和Oracle數據庫異機升級的相關部分一樣,不再重復。
5. 備份10g數據庫
此時環境變量配置是Oracle 10g的。 我這里選擇停機一致性備份, 干凈關庫(shutdown immediate)啟動到mount(startup mount)備份數據庫(backup database plus archivelog)。 備份的目的當然是防止升級過程中失敗,可以有備份還原庫到最初的狀態。
6. 升級10g數據庫到11g
此時環境變量配置是Oracle 11g的。 注意,這里直接open upgrade,因為就不需要resetlogs了。 ``` alter database open upgrade; spool upgrade.log @?/rdbms/admin/catupgrd.sql spool off ``` 升級數據庫后的操作和Oracle數據庫異機升級的相關部分一樣,也不再重復。