使用DBUA升级 Oracle 11.2.0.4到Oracle 19C的问题记录

来源:这里教程网 时间:2026-03-03 15:56:34 作者:

 简单记录一下升级过程中的坑:       需求:把ORACLE 11.2.0.4库迁移到新机器并升级到19C。前期工作:在新机器上安装11g,目录为/u01/app/oracle/product/11.2.0/home_119C安装在/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.sql4、 清空回收站 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的目录。

相关推荐