oracle11g數據庫升級

Oracle支持週期java

wKioL1RwrpvyBukyAAMkClSTeao691.jpg

 

Oracle對本身產品也同樣,對於本身的產品在不一樣的時期,支持的強度是不同的。
大致分來,支持的強度分爲三個級別:Premier Support(最高優先級的支持),Extended Support(中等優先級的支持),Sustaining Support(最低優先級的支持)sql

1.從產品發佈爲期5年的標準支持服務期-Premier support數據庫

2.隨後爲期3年的延展支持服務期---------extended support服務器

3.接下來進入持久支持服務期--------------sustaining support網絡

不過根據不一樣的週期劃分,Oracle的支持費用將會不一樣,在延展服務器內,第一年將會加收10%的費用提供支持,第二年加收20%的費用提供支持,第三年也是加收20%的費用提供支持。session

Oracle11g數據庫的推出,oracle數據庫的升級成爲必然。升級包括數據庫軟件的升級和數據庫的升級兩部分。oracle

升級路線圖app

wKiom1RwrmjSXODJAAITOSDSG4c601.jpg

 

大概的升級步驟:ide

1    備份數據庫ui

2    運行patchset,升級oracle 軟件

3    準備新的ORACLE_HOME

4    運行dbua 或者腳本升級實例

5    檢查升級後的版本信息和無效對象

升級補丁包選擇

Metalink文檔id1922396.1會更新須要的補丁號

 wKioL1RwrxricNIJAAOWwmqw9J4760.jpg

升級方法選擇

關於方法有不少,每種有各自的特色,根據特色選擇合適的升級方式。

 

 wKiom1RwrtewdeArAAQ_nAkHjZs922.jpg

wKioL1Rwr5nSrTalAAJMXvvLJe0792.jpg

能夠選擇參考文檔id 1674333.11602485.1分別是9i11g升級到最新的11gR2

wKiom1Rwr2fB0BrVAASB_rjEEMs949.jpg

 

1
======

下載 11.2.0.2 或更高版本的 RDBMS 軟件。

2
======

將最新的 11.2 RDBMS 軟件安裝到 ORACLE_HOME 中。

運行Patchset runInstaller

./runInstaller

wKioL1Rwr_vCGaASAAIf8YPSwq0800.jpg

這裏要注意,咱們以前講過11gR2Patchset 能夠直接用來安裝。在這個界面就能夠選擇操做類型,這個功能比較方便,從而也致使patchset 愈來愈大,咱們這裏選擇upgrade an existing database

wKioL1RwsCCSa55BAALMX8XdHTg352.jpg

注意這裏的安裝位置,我以前的安裝目錄是11.2.0. 這裏我改爲了11.2.0.4. 即將oracle 安裝到其餘位置,這樣能夠減小宕機時間,也是oracle 推薦的方法。

3
======

安裝最新的 11.2 RDBMS 軟件以後,用之前的 ORACLE_HOME 中啓動 11.2.0.1實例,對正在運行的之前的實例執行 11.2.0.2 $ORACLE_HOME/rdbms/admin/utlu112i.sql 腳本,並將輸出 spool 至一個文件。原來目錄執行新腳本。
不論您是使用 DBUA 仍是手動升級,均必須運行 Pre-Upgrade Information Tool。不然可能會遇到錯誤:

1.     Log in to the system as theowner of the environment of the database being upgraded.

Important:

The Pre-UpgradeInformation Tool must be copied to and must be run from the environment of thedatabase being upgraded.

注意,這裏必須調用新的ORACLE_HOME 下腳本。

2.     Start SQL*Plus.

3.     Connect to the databaseinstance as a user with SYSDBA privileges.

4.     Set the system to spool resultsto a log file for later analysis:

SQL> SPOOL upgrade_info.log

5.     Run the Pre-Upgrade InformationTool:

SQL>@/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql

6.     Turn off the spooling of scriptresults to the log file:

SQL> SPOOL OFF

4
======

運行如下 My Oracle Support 文章中的 dbupgdiag.sql 腳本,驗證 dba_registry 中的全部組件有效而且 dba_objects 中沒有無效的數據字典對象。

若是 dbupgdiag.sql 腳本報告了任意無效對象,則運行 $ORACLE_HOME/rdbms/admin/utlrp.sql(可能須要屢次)以使數據庫中的無效對象變爲有效,直至無效對象數不發生變化爲止。

5
=====

禁用全部批處理和 cron 做業,而後執行數據庫的完整備份。

1. 登陸 RMAN:
rman "target / nocatalog"
2.
運行如下 RMAN 命令:
RUN
{
ALLOCATE CHANNEL chan_name TYPE DISK;
BACKUP DATABASE FORMAT 'some_backup_directory%U' TAG before_upgrade;
BACKUP CURRENT CONTROLFILE FORMAT 'controlfile location and name';
}

6
=======

乾淨的關閉數據庫。

操做步驟:

wKiom1RwsBHjRjz8AACCbN-ez6w930.jpg

7 步(僅限 Windows 平臺)
========================

1)
將環境變量 ORACLE_HOME 設置爲指向 11.2.0.1 安裝。
2)
中止指向 11.2.0.1 安裝的 Oracle 數據庫服務。

  C:\> NET STOP OracleServiceORCL
3) 
使用 %ORACLE_HOME%\bin\ORADIM 可執行程序刪除 11.2.0.1 Oracle 服務。

C:\> ORADIM -DELETE -SID ORCL
4)
將環境變量 ORACLE_HOME 設置爲指向 11.2.0.2 安裝。

5) init.ora/spfile 和口令文件 (orapw<sid>.ora) 11.2.0.1 %ORACLE_HOME%/database 複製到 11.2.0.2 %ORACLE_HOME%/database
6)
將網絡配置文件(listener.orasqlnet.oratnsnames.ora 等)從 11.2.0.1 %ORACLE_HOME%\network\admin(或 $TNS_ADMIN)位置複製到 11.2.0.2 %ORACLE_HOME%\network\admin(或 %TNS_ADMIN%)位置。
7)
若是配置並使用了 DB Console/DB Control,將如下兩個目錄及其內容從 11.2.0.1 複製到 11.2.0.2。(若是未配置 DB Console/DB Control,則這些目錄可能不存在。)
           ORACLE_HOME/<hostname_dbname>
           ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>
8)
使用 11.2.0.2 的可執行程序,在命令提示符下建立 Oracle 11.2.0.2 服務。

%ORACLE_HOME%\bin\ ORADIM 
C:\> ORADIM -NEW -SID SID -SYSPWD PASSWORD -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA

例如:

C:\> ORADIM -NEW -SID ORCL -SYSPWD  pass_with_sysdba_priv  -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA

PASSWORD = 新數據庫實例的口令。這是使用 SYSDBA 權限鏈接的用戶的口令。-SYSPWD 選項並不是必需。若是未指定該項,則將使用操做系統驗證,而且不須要口令
8 步(Unix Linux
================
=
配置目標 11.2.0.2 ORACLE_HOME
1)
確保環境變量 ORACLE_BASEORACLE_HOMEPATHNLS_10 LIBRARY_PATH 設置爲指向 11.2.0.2 安裝。
ORACLE_SID 設置爲 11.2.0.1數據庫名以升級。
修改 /etc/oratab 文件指向您的 11.2.0.2 ORACLE_HOME
2)
禁用 Database Vault

Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
3)
init.ora/spfile 和口令文件 (orapw<sid>.ora) 11.2.0.1 $ORACLE_HOME/dbs 複製到 11.2.0.2 $ORACLE_HOME/dbs
4)
將網絡配置文件(listener.orasqlnet.oratnsnames.ora 等)從 11.2.0.1 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置複製到 11.2.0.2 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置
5)
若是配置了並使用了 DB Console/DB Control,將如下兩個目錄及其內容從 11.2.0.1 複製到 11.2.0.2。(若是未配置 DB Console/DB Control,則這些目錄可能不存在。)
           ORACLE_HOME/<hostname_dbname>
           ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>
請爲 <hostname_dbname> 指定實際的名稱
6)
確保爲 Oracle Database 11g 版本 2 (11.2) 正確設置了 COMPATIBLE 初始化參數。若是未正確設置 COMPATIBLE,則 Pre-Upgrade Information Tool 會在「Database」部分中顯示警告。
7)
將初始化參數的值調整到至少爲 Pre-Upgrade Information Tool 指示的最小值。對於安裝了 JVM 的客戶,必須在升級前將 java_pool_size shared_pool_size 至少設置爲 250MB,不然 JVM 升級可能會失敗,並出現如下錯誤:

ORA-07445: exception encountered: core dump [qmkmgetConfig()+52] [SIGSEGV] [ADDR:0x18] [PC:0x103FFEC34] [Address not mapped to object] []

具體操做步驟:

 

操做步驟:(複製偵聽,密碼文件)
wKioL1RwsK2x9useAALAXsLbYQQ584.jpg

 編輯環境變量

wKiom1RwsE7Q-dCcAAHnGXapzGg452.jpg

 /etc/oratab,該目錄下也有ORACLE_HOME

[oracle@dave db_1]$ cat /etc/oratab

wKiom1RwsGbjr0zzAACJMg_xfuk216.jpg

 若是配置了並使用了 DB Console/DB Control,將如下兩個目錄及其內容從 11.2.0.1 複製到 11.2.0.2。(若是未配置 DB Console/DB Control,則這些目錄可能不存在。)
           ORACLE_HOME/<hostname_dbname>
           ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>

確保爲 Oracle Database 11g 版本 2 (11.2) 正確設置了 COMPATIBLE 初始化參數。若是未正確設置 COMPATIBLE,則 Pre-Upgrade Information Tool 會在「Database」部分中顯示警告。

必須在升級前將 java_pool_size shared_pool_size 至少設置爲 250MB

加入參數:

create pfile from spfile ;

修改參數

wKioL1RwsPrh1ei_AABvmZ626wc752.jpg

最後生成spfile

SQL> create spfile from pfile ;

9
======

手動升級數據庫。
1)
啓動 sqlplus 並從新安裝的目標 $ORACLE_HOME/rdbms/admin 下運行 catupgrd.sql 腳本

sqlplus " / as sysdba "
SQL> spool /tmp/upgrade.log
SQL> startup upgrade
SQL> set echo on
SQL> @
$ORACLE_HOME/rdbms/admin /catupgrd.sql;  
SQL> spool off
SQL> Shutdown immediate

這個很是重要的步驟能夠確保新的數據庫軟件的完整性和一致性。若是在啓動數據庫時碰到錯誤說參數文件中含有被廢棄的初始化參數,那麼從初始化參數文件中刪除這些參數。若是須要的話,能夠把 spfile 轉換成 pfile 以後就能夠編輯 pfile 並刪除相關參數了。
執行 Post-Upgrade Status Tool $ORACLE_HOME/rdbms/admin/utlu112s.sql它會提供一個關於升級的總結. 它會顯示升級後各個數據庫組件的狀態和各個組件升級花費的時間。任何在升級中碰到的錯誤也會被列出,這些錯誤必須獲得妥善的處理。

$ sqlplus "/as sysdba"
SQL> STARTUP
SQL> @utlu112s.sql

運行 $ORACLE_HOME/rdbms/admin 目錄下的 catuppst.sql完成不須要在數據庫處於 UPGRADE 模式下操做的其它升級的動做:

SQL> @catuppst.sql
這個腳本能夠和 utlrp.sql 並行運行. 在另外一個 session 裏運行 utlrp.sql 來從新編譯剩下的 PL/SQL Java 代碼:

SQL> @utlrp.sql
運行從下面文檔中獲得的 dbupgdiag.sql 來檢查升級後數據庫的完整性。

Note 556610.1  Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
若是 dbupgdiag.sql 發現了一些失效對象,那麼屢次執行 $ORACLE_HOME/rdbms/admin/utlrp.sql 來從新編譯這些失效對象,直到失效對象的數目再也不變化。
在從新編譯這些失效對象以後,再次運行 dbupgdiag.sql 確認一切都是正常的。

升級後步驟
===================

1) 升級集羣配置

若是您使用的是 Oracle 集羣,那麼您必須更新集羣配置。

11.2.0.2 開始,upgrade 命令會將配置更新爲正在運行的軟件的版本。

您可使用 srvctl 命令,例如:

srvctl upgrade database

這個命令會將數據庫及其對應服務的配置信息更新至正在運行的軟件的版本。

語法及選項以下:

srvctl upgrade database -d db_unique_name -o Oracle_home
Table A-161 srvctl upgrade database Options
選項描述
-d db_unique_name
 
數據庫的 unique name
-o Oracle_home
ORACLE_HOME
的路徑

2) 使用 DBMS_DST 將時區升級到最新版本。

Note 1201253.1
Title: Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset
3)
升級 Recovery Catalog
有關升級 Recovery Catalog UPGRADE CATALOG 命令的完整信息,請參閱《Oracle Database Backup and Recovery User's Guide》中的介紹這些過程的主題。
4)
升級 DBMS_STATS 程序包建立的 Statistics Table
若是使用 DBMS_STATS.CREATE_STAT_TABLE 建立了 statistics table,則經過運行如下命令來升級這些表:

EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('scott', 'stat_table');
在示例中,SCOTT statistics table 的全部者,STAT_TABLE statistics table 的名稱。對每一個 statistics table 都須要執行此命令。
5)
啓用 Oracle Database Vault 並收回 DV_PATCH_ADMIN 角色。
若是您使用了 Oracle Database Vault,並按照以前的指示在升級前先禁用了它,如今您須要:
啓用 Database Vault

Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
收回 SYS 用戶的 Database Vault DV_PATCH_ADMIN 角色。
參考http://download.oracle.com/docs/cd/E11882_01/server.112/e17222.pdf

6). 數據庫中的 Oracle Warehouse Builder (OWB) 組件不會在升級過程當中安裝。升級後,有幾個步驟升級該組件。

7最後調用一下dbca 重建一下OEM

       若是dbca 顯示OEM 已經配置過,rm 掉以下2個目錄,再次運行就ok了。

ORACLE_HOME/hostname_dbname

ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname

wKioL1RwsGPiLEGAAAIlewOpb_8430.jpg

最後驗證一下各個組件的版本和狀態:

Sql> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY

COMP_NAME                                VERSION         STATUS

---------------------------------------- --------------- ----------------------

OWB                                      11.2.0.1.0      VALID

Oracle Application Express               3.2.1.00.10     VALID

Oracle Enterprise Manager                11.2.0.4.0      VALID

OLAP Catalog                             11.2.0.4.0      VALID

Spatial                                  11.2.0.4.0      VALID

Oracle Multimedia                        11.2.0.4.0      VALID

Oracle XML Database                      11.2.0.4.0      VALID

Oracle Text                              11.2.0.4.0      VALID

Oracle Expression Filter                 11.2.0.4.0      VALID

Oracle Rules Manager                     11.2.0.4.0      VALID

Oracle Workspace Manager                 11.2.0.4.0      VALID

Oracle Database Catalog Views            11.2.0.4.0      VALID

Oracle Database Packages and Types       11.2.0.4.0      VALID

JServer JAVA Virtual Machine             11.2.0.4.0      VALID

Oracle XDK                               11.2.0.4.0      VALID

Oracle Database Java Packages            11.2.0.4.0      VALID

OLAP Analytic Workspace                  11.2.0.4.0      VALID

Oracle OLAP API                          11.2.0.4.0      VALID

18 rows selected.

至此,經過命令升級操做結束。

若是在升級過程當中遇到問題,能夠從新執行升級腳本,步驟以下:

1.Shut down the database as follows:

    SQL> SHUTDOWNIMMEDIATE

2.Restart the databasein UPGRADE mode:

   SQL> STARTUP  UPGRADE

3.Set the system to spool results to a logfile for later verification of success:

   SQL> SPOOLupgrade.log

4.Rerun catupgrd.sql:

   SQL>@catupgrd.sql

Note:

You can rerunthe catupgrd.sql script as many times as necessary. The first timeyou run the script, there should be no error messages returned. If you rerunthe script, then the ORA-00001 messageis displayed. You can safely ignore this message.

5.Rerun utlu112s.sql:

   SQL>@utlu112s.sql

圖形化升級

   圖形化升級更爲簡單,到調用圖形化界面後一路回車完成升級。

wKiom1RwsKXBxG2mAAJwHNl9sxE835.jpg

 

接着,是最重要的,經過DBUA進行數據庫的升級,而後OUI會提示,升級ASM仍是數據庫,若是數據庫是安裝在asm上的要先升級asm,後升級數據庫。最後會彙總升級信息進行確認便可開始升級。數據庫升級時一個耐心的活,由於可能很慢。升級過程當中最好有Data GuardRAC環境,優先提供服務。

相關文章
相關標籤/搜索