使用DBUA升級 Oracle 11.2.0.4到Oracle 19C的問題記錄

king3171發表於2020-07-08

 簡單記錄一下升級過程中的坑:

      需求:把ORACLE 11.2.0.4庫遷移到新機器並升級到19C。

前期工作:

在新機器上安裝11g,目錄為/u01/app/oracle/product/11.2.0/home_1

19C安裝在/u01/app/oracle/product/19.3.0/home_1

在老伺服器上RMAN全庫備份出來,備份目錄NFS共享給新伺服器,在新伺服器上掛載上共享目錄,完成恢復。11G正常開啟庫沒有問題。

     接著就是對要升級的庫做5個準備工作

1、清除 OLAP Catalog:$ORACLE_HOME/olap/admin/catnoamd.sql  
2、清除apex:$ORACLE_HOME/apex/apxremov.sql

3、 刪除11G的DB control  需要使用19C的 $ORACLE_HOME/rdbms/admin/ emremove.sql

4、 清空回收站

5、 執行utlrp.sql重新編譯

檢查是否有失效的物件,為了保險起見,失效的物件我都刪除了。

一、第一個坑:

設定/etc/oratab   orcl:/u01/app/oracle/product/19.3.0/home_1:N

就是這個設定,掉進了第一個坑。

使用19C DBUA升級,開始執行過程時,本應該先用11G啟動庫,結果19C啟動了11G的庫,啟動到升級模式,然後就出錯了。然後再改回用11G啟動,就報control file version 19.0.0.0.0 incompatible with ORACLE version 11.2.0.4.再啟動不了了,就此升級失敗,只好把庫刪了,重新來一次恢復操作,從頭開始做一遍。


二、第二個坑

 DBUA過程中讓選擇升級失敗的恢復模式,我選擇了使用flashback 建立恢復點。

結果DBUA升級過程中,發現卡在那一直不動,開啟後臺看告警alert日誌,發現報db recovery 目錄滿,趕緊用alter  system set 把 db recovery 目錄設定一個更大的值,之後的操作就在 db recovery 目錄不斷的滿,不斷的擴 db recovery 目錄。本來以為用不了多久就能完的操作,花費了好幾個小時。以後這種升級,再不能選用 使用flashback 建立恢復點了。


三、第三個坑

走到post階段的時候,失敗,報以下錯誤

Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is not loaded into table
ORA-06512: at "SYS.DBMS_QOPATCH", line 2327
ORA-06512: at "SYS.DBMS_QOPATCH", line 854
ORA-06512: at "SYS.DBMS_QOPATCH", line 937
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.DBMS_QOPATCH", line 932
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04095: preprocessor command /u01/app/oracle/product/19.3.0home_1/QOpatch/qopiprep.bat encountered error "locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Can"
ORA-06512: at "SYS.DBMS_QOPATCH", line 919
ORA-06512: at "SYS.DBMS_QOPATCH", line 2286
ORA-06512: at "SYS.DBMS_QOPATCH", line 817
ORA-06512: at "SYS.DBMS_QOPATCH", line 2309
===========================================================
Dumping current patch information
===========================================================
Unable to obtain current patch information due to error: 20001

到MOS上耐心的搜尋,找到了解決辦法:

做這個設定:export LC_ALL=en_US.UTF-8

問題解決。

四、第四個坑

 升級完後,居然庫啟動到mount就失敗,報以下錯誤:

control file version 19.0.0.0.0 incompatible with ORACLE version 11.2.0.4.

仔細檢查,發現啟動引數裡,compatible='11.2.0.4’,修改引數檔案

compatible='11.2.0.4’修改為 compatible='19.3.0’。重新啟動,啟動成功。

    檢查元件狀態:

select  COMP_ID,VERSION, STATUS  from dba_registry;

COMP_ID                        VERSION                        STATUS
------------------------------ ------------------------------ ------------------
CATALOG                        19.0.0.0.0                     VALID
CATPROC                        19.0.0.0.0                     VALID
JAVAVM                         19.0.0.0.0                     VALID
XML                            19.0.0.0.0                     VALID
CATJAVA                        19.0.0.0.0                     VALID
APS                            19.0.0.0.0                     VALID
RAC                            19.0.0.0.0                     OPTION OFF
OWM                            19.0.0.0.0                     VALID
CONTEXT                        19.0.0.0.0                     VALID
XDB                            19.0.0.0.0                     VALID
ORDIM                          19.0.0.0.0                     VALID

COMP_ID                        VERSION                        STATUS
------------------------------ ------------------------------ ------------------
SDO                            19.0.0.0.0                     VALID
XOQ                            19.0.0.0.0                     VALID

13 rows selected.

RAC元件不正常,好在是單機,不適用RAC,不做處理。


最後一步工作,把ORACLE_HOME從11G的目錄修改為19C的目錄。






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

相關文章