(轉)Oracle 10.2.0.1 升級到 10.2.0.4

mahanso發表於2011-08-22

--*********************************

-- Oracle 10.2.0.1  10.2.0.4

--*********************************

   資料庫升級並不難,只要遵循其步驟,一般問題不大。但是升級失敗的情況也是屢見不鮮,尤其是生產資料庫的升級,搞不定的時候甚至要建立SR。

  下面描述基於Linux(Oracle Linux 5.4/2.6.18-164.el5PAE)平臺下Oracle 10.2.0.1 升級到 10.2.0.4的步驟。

  Oracle升級包的下載,請連結:Oracle 補丁全集 (Oracle 9i 10g 11g Path)

  注:

    在9i以前,無論升級/降級,資料庫都是startup migrate

    10g後增加了upgrade引數,升級可直接用startup upgrade,降級仍是startup migrate


一、單例項升級先決條件:

1.表空間需求

  確保system表空間至少有10M空間可用,下面給出查詢語句


    col "tablespace_name" for a20

    col "Usage_Percent" for a10

    SELECT upper(f.tablespace_name) "tablespace_name"

         ,d.tot_grootte_mb "tablespace_size(M)"

         ,d.tot_grootte_mb - f.total_bytes "used_size(M)"

         ,to_char(round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,

               2),

             '990.99') "Usage_Percent"

         ,f.total_bytes "free_size(M)"

    FROM   (SELECT tablespace_name

            ,round(SUM(bytes) / 1024 / 1024) total_bytes

            ,round(MAX(bytes) / (1024 * 1024), 2) max_bytes

        FROM   sys.dba_free_space

        GROUP  BY tablespace_name) f

        ,(SELECT dd.tablespace_name

            ,round(SUM(bytes) / 1024 / 1024) tot_grootte_mb

        FROM   sys.dba_data_files dd

        GROUP  BY dd.tablespace_name) d

    WHERE  d.tablespace_name = f.tablespace_name

    ORDER  BY 2 DESC;


2.系統引數:

  確保引數SHARED_POOL_SIZE 和 JAVA_POOL_SIZE大於150MB以上,為加快升級速度,在系統記憶體可用的情況下,可臨時調大這2個引數


          SQL> SHOW PARAMETER SHARED_POOL_SIZE

          SQL> SHOW PARAMETER JAVA_POOL_SIZE

          SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='200M' SCOPE=spfile;

          SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='200M' SCOPE=spfile;


二、實施升級


1.關閉需要升級的例項

  停止例項

    SQL> shutdown immediate 

  停止與該例項相關的所有後臺程式

    lsnrctl emctl


2.備份Oracle Home 目錄及資料庫

  tar -cvf  /home/oracle/orabak/DBsoft.tar  $ORACLE_BASE    --確保Oracle相關的所有配置都位於$ORACLE_BASE目錄,如監聽等

  cp *.dbf con*.ora redo*.log /orabak/  --對資料庫實施冷備


3.升級軟體

  ./runIstanller   --&gtoracle 賬戶

  root.sh          --&gtroot 賬戶


4.更新資料字典

  SQL> startup upgrade

  SQL> spool patch.log

  SQL> @?/rdbms/admin/catupgrd.sql   --注9i 使用catpatch.sql

  SQL> spool off


5.重編譯失效物件:

  sql>shutdown immediate

  sql>startup

  SQL>@?/rdbms/admin/utlrp.sql


6.升級後的檢測

  SQL>select comp_name,version,status from sys.dba_registry;

  檢查元件的升級情況

  SQL>select * from utl_recomp_errors;


7.修改相容性引數

  SQL> alter system set compatible='10.2.0.4.0' scope=spfile;


8.重新啟動資料庫:

  SQL> SHUTDOWN

  SQL> STARTUP


9.如果使用了恢復目錄,則執行下面的命令

  $ rman catalog username/password@mahanso

  RMAN> UPGRADE CATALOG;


10.升級回退:


  SQL> STARTUP DOWNGRADE

  SQL> SPOOL downgrade.log

  SQL> @catdwgrd.sql(10.2.10執行的是這個,而10.1降級用的是d92000.sql,即dold_release.sql)

  Sql>spool off

  Sql>shutdown immediate

12.檢查升級後的情況

  SQL> select comp_name,version,status from sys.dba_registry;

  COMP_NAME                                VERSION                        STATUS

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

  Oracle Database Catalog Views            10.2.0.4.0                     VALID

  Oracle Database Packages and Types       10.2.0.4.0                     VALID

  Oracle Workspace Manager                 10.2.0.4.3                     VALID

  JServer JAVA Virtual Machine             10.2.0.4.0                     VALID

  Oracle XDK                               10.2.0.4.0                     VALID

  Oracle Database Java Packages            10.2.0.4.0                     VALID

  Oracle Expression Filter                 10.2.0.4.0                     VALID

  Oracle Data Mining                       10.2.0.4.0                     VALID

  Oracle Text                              10.2.0.4.0                     VALID

  Oracle XML Database                      10.2.0.4.0                     VALID

  Oracle Rule Manager                      10.2.0.4.0                     VALID

  COMP_NAME                                VERSION                        STATUS

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

  Oracle interMedia                        10.2.0.4.0                     VALID

  OLAP Analytic Workspace                  10.2.0.4.0                     VALID

  Oracle OLAP API                          10.2.0.4.0                     VALID

  OLAP Catalog                             10.2.0.4.0                     VALID

  Spatial                                  10.2.0.4.0                     VALID

  Oracle Enterprise Manager                10.2.0.4.0                     VALID

  17 rows selected.


  SQL> select * from utl_recomp_errors;

  no rows selected

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-705528/,如需轉載,請註明出處,否則將追究法律責任。

相關文章