32 bit oracle10201 升級 到x64 oracle10201過程失誤總結

msdnchina發表於2009-10-12

第一.最嚴重的失誤:

    db冷備時,只冷備出了oracle_base,和oradata目錄(此目錄中包含了控制檔案,日誌檔案,還有oracle本身的資料檔案),沒有備份出應用的資料檔案.這樣導致,之後升級失敗時(升級的過程,也就是執行sql的過程,執行sql時,controlfile中會記錄最新的改變,同時,將此最新的改變應用到應用的資料檔案中.這樣一來,即使能還原了oracle_base,和oradata目錄,但是由於無法還原應用的資料檔案,在這種情況下,startup,會報:

SQL> startup
ORACLE 例程已經啟動。

Total System Global Area 2550136832 bytes
Fixed Size                  2006416 bytes
Variable Size             553648752 bytes
Database Buffers         1979711488 bytes
Redo Buffers               14770176 bytes
資料庫裝載完畢。
ORA-01122: 資料庫檔案 5 驗證失敗
ORA-01110: 資料檔案 5: 'D:\CWDATA\GS_ORADB_001.DBF'
ORA-01207: 檔案比控制檔案更新 - 舊的控制檔案

),

這也就是說,還原不到原來的起點.

 

第二.沒有先將"Metalink Note:62290.1 Changing between 32-bit and 64-bit Word Sizes" 通讀三遍,沒有做到結合本次升級現場的環境制定出適合本次升級的步驟.

 造成的後果:

因為一般metalink的文章,是在某一步陳述完畢之後,才有Note: ,(正如第17步,第17步見下),我卻是先執行完了sql,最後才從Note: 中發現,原來這個sql是不需要執行的.這個情況為"江湖人士所不齒"!!!

17. Locate the version you are migrating from below, and execute the appropriate
    script.:

    - If you are migrating an Oracle 8.0, Oracle8i or Oracle 9i 9.0.x database,
    run the following script.:

    SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql

    - If you are migrating an Oracle9i 9.2.0.x database, run the following
    script.:

    SQL> @$ORACLE_HOME/rdbms/admin/catpatch.sql

    - If you are migrating an Oracle10g 10.1.0.x or 10.2.0.x database, run the
    following script.:
 
    SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql

=============================================================================

    Note:

    If the patchset level is not being changed (for example, you are
    migrating a 9.2.0.8 32-bit database to 9.2.0.8 64-bit) then there is no
    need to run the $ORACLE_HOME/rdbms/admin/catpatch.sql script. or the
    $ORACLE_HOME/rdbms/admin/catupgrd.sql script. because the data dictionary
    is already at the correct level.

=============================================================================

 

第三,沒用按照第10步中的做,沒有 doubling the size of parameters

10.

 When changing wordsize from a 32-bit Oracle version to a 64-bit Oracle
    version, Oracle recommends doubling the size of parameters such as:

    SHARED_POOL_SIZE
    SHARED_POOL_RESERVED_SIZE
    LARGE_POOL_SIZE

    This is mainly due to an increase in the size of internal data structures.
    For an in-depth explanation of this, please see Note 209766.1
    'Memory Requirements of Databases Migrated from 32-bit to 64-bit'

沒有 doubling the size of parameters 的後果,是在in normal mode 執行@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlrp.sql時,有報錯,

SQL> DECLARE
  2   threads pls_integer := &&1;
  3  BEGIN
  4   utl_recomp.recomp_parallel(threads);
  5  END;
  6  /
DECLARE

*
第 1 行出現錯誤:
ORA-03113: 通訊通道的檔案結束


SQL>
SQL> SELECT dbms_registry_sys.time_stamp('utlrp_end') as timestamp from dual;
ERROR:
ORA-03114: 未連線到 ORALCE

 

 

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

相關文章