當前位置:成語大全網 - 新華字典 - Oracle數據庫如何從11.2降級至之前的版本

Oracle數據庫如何從11.2降級至之前的版本

本文檔可用作將之前升級的數據庫從 Oracle 11gR2 降回至下列以前版本數據庫的指南與核對表:Oracle 10gR1、Oracle 10gR2、Oracle

本文檔可用作將之前升級的數據庫從 Oracle 11gR2 降回至下列以前版本數據庫的指南與核對表:Oracle 10gR1、Oracle 10gR2、Oracle 11gR1。該文檔內容也適用於從 11.2.0.4 降級至 11.2.0.1

需要特別註意的是,在將數據庫實例從當前版本降級至升級前版本時,數據庫不會返回至與其升級前相同的狀態。升級過程會導致壹些不可逆的更改,具體取決於涉及的版本。降級過程允許用戶在之前版本中打開並訪問數據庫實例。這通常就足夠了。此外,在降級後可能需要采取壹些更正操作(如卸載/重新安裝,或重新升級至當前修補程序集級別),以解決殘留問題。如果目標是將實例完全返回至其升級前的狀態,那麽將會用到包括恰好恢復至升級前狀態在內的其他流程。

本文章中討論的過程是基於腳本的降級。本文章並未討論如何使用導入/導出、數據泵或其他方法將數據從壹個版本移至另壹個版本。

開始降級過程之前,在服務器上應該有或已安裝要降至版本的 Oracle 二進制文件。如果已卸載了希望降至版本的 Oracle 可執行文件,請將該 Oracle 二進制文件重新安裝至正確的版本/修補程序級別,以便進行降級。

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

註意事項:

示例: 對於 Exadata Bundle Patch,過程為:

卸載 patch

示例: $ opatch auto /u01/app/oracle/patches/14103267 -rollback

回滾SQL的變更

示例: SQL> @rdbms/admin/catbundle_EXA__ROLLBACK.sql rollback SQL 變更.

解決方案

降級前步驟:

1: 驗證所有組件和字典對象對於 11gR2 均有效並且版本正確。

set pagesize500 set linesize 100select substr(comp_name,1,40) comp_name, status, substr (version,1,10) version from dba_registry order by comp_name;select substr(object_name,1,40) object_name,substr(owner,1,15) owner, object_type from dba_objects where status='INVALID' order by owner,object_type;select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by owner,object_type;

如果任何組件或 Oracle 提供的對象無效,則需要運行 utlrp.sql 對其進行重新驗證。該腳本可能需要運行多次以驗證所有對象。

$ cd $ORACLE_HOME/rdbms/admin $ sqlplus "/ as sysdba" SQL> @utlrp.sql

當完成後,重新運行上述查詢以驗證所有無效對象現在都是有效的。

2: 如果已在數據庫上啟用了 Oracle Database Vault,則必須:

a: 授予 SYS 帳戶 Database Vault DV_PATCH_ADMIN 角色。b: 降級數據庫之前禁用 Database Vault。

禁用 Oracle Database Vault 觸發器: SQL> CONNECT DVSYS/DVSYSSQL> ALTER TRIGGER DV_BEFORE_DDL_TRG DISABLE;SQL> ALTER TRIGGER DV_AFTER_DDL_TRG DISABLE;

3: 如果設置了操作系統參數 ORA_TZFILE,請取消其設置。如果不取消設置 ORA_TZFILE 變量,連接至數據庫時可能會生成以下錯誤:

SP2-1503: Unable to initialize Oracle call interface SP2-0152: ORACLE may not be functioning properly

4: 如果在降級至之前的數據庫版本之前,已運行 DBMS_DST 軟件包將時區版本升級至新版本(例如在 11gR2 升級的升級後步驟期間升級至版本 11),那麽必須將版本 11 時區文件安裝到舊的 Oracle 數據庫版本上的 $ORACLE_HOME/oracore/zoneinfo 目錄中。

5: 檢查數據庫的兼容性級別,以確定數據庫是否可能具有防止降級的不兼容性。曾經設置過的 compatible 的最高值就是您能降級到的最低的那個版本。比如:

如果數據庫的兼容性級別已經是最新的了(比如11.2.0.4),則無法進行降級。

如果數據庫的兼容性級別曾經是 11.2.0 或更高,則無法將數據庫降級到比 11.2.0.1 更低的版本 。如果要將數據庫降級至 11gR1,COMPATIBLE 初始化參數必須從未比 11.1.0 更高。如果要將數據庫降級至 10gR2,COMPATIBLE 初始化參數必須從未比 10.2.0 更高。如果要將數據庫降級至 10gR1,COMPATIBLE 初始化參數必須從未比 10.1.0 更高。

6: 如果數據庫上安裝有 Oracle Application Express,則必須將 apxrelod.sql 文件從 Oracle 11gR2 (11.2) ORACLE_HOME/apex/ 目錄復制到 Oracle 主目錄之外的某個目錄,如系統上的臨時目錄。記下該文件的新位置。7: 在降級之前執行 11gR2 數據庫的備份。

數據庫的降級步驟

如果要從 11.2.0.4 降級至 11.2.0.2,使用 11.2.0.2 catrelod.sql 腳本會出現壹個問題。針對版本 11.2.0.2 下載並應用修補程序 11811073,其提供了更新版本的 catrelod.sql。

1: 以 Oracle Database 11g Release 2 (11.2) Oracle 主目錄的所有者登錄系統。2: 如果已針對數據庫配置並運行了 Enterprise Manager Database Control,則按如下所示停止Database Control:

a: 將 ORACLE_UNQNAME 環境變量設置為數據庫唯壹名稱。b: 運行以下命令:RACLE_HOME/bin/emctl stop dbconsole

3: 如果要降級的數據庫是 Oracle Real Application Clusters (Oracle RAC) 數據庫,則在所有實例上執行該步驟。