10g升级到12.2 遇到的几个问题

本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger的Oracle&MySQL技术博客

本文链接地址: 10g升级到12.2 遇到的几个问题

18年春节加班期间,将某客户的核心数据库从Oracle 10.2.0.4 RAC迁移升级至12.2 RAC. 原库是使用的Raw,而且版本较低,无法直接升级到12.2版本,因此整个升级过程相对麻烦。

我们的大致思路是:

1、搭建10g DataGuard到新环境;

2、在新环境同时部署好10g、11.2、12.2 的Database软件(其中10g,11.2 均为单机,12.2为已经安装好的Oracle RAC环境)

3、首先通过DataGuard switchover切换到备库(新环境)

4、新主库跑升级脚本到11.2(跑升级脚本之前创建还原点)

5、第一次跑升级脚本成功之后,再升级到12.2(跑之前要删除之前的还原点,创建新的还原点)

6、数据库升级到12.2之后,需要将DB从NO-CDB模式转换成CDB模式,将数据库作为PDB插入到12.2 RAC集群中。

7、创建Redo、Undo以及修改相应参数,将数据库转成Rac实例。

在整个升级过程中,我们遇到了几个小问题,分别如下:

1) DataGuard的文件convert参数没有加入tempfile,导致dg切换之后,主库open有问题,需要先drop tempfile 之后才行。

2)在升级到12.2的过程中,遇到ORA-01722错误,如下所示:

根据Oracle Mos文档Upgrade to 12.2 Fails with Error:”ORA-01722: Invalid number : NONUPGRADED_TABLEDATA” (文档 ID 2279497.1) 的描述,可以通过如下的方式来解决:

set serveroutput on
@?/rdbms/admin/catuptabdata.sql
@?/rdbms/admin/utluptabdata.sql

execute dbms_preup.run_fixup_and_report('INVALID_SYS_TABLEDATA');
execute dbms_preup.run_fixup_and_report('INVALID_USR_TABLEDATA');
set serveroutput off

 

3) 将数据库作为PDB插入到CDB之后,打开pdb时提示为受限模式。

该问题经查是由于我们在执行的过程中漏掉了一个步骤(

exec dbms_pdb.sync_pdb();),导致pdb的信息与cdb的信息不一致,本质上组件信息不一致。实际上从Oracle官方的解释来看,只要pdb的组件属于cdb的子集就行,我们当时查询结果却是显示正常的,但是pdb的组件状态显示异常,因此让Oracle认为pdb的组件与cdb有巨大差异,将pdb置于受限模式(“OPTION WARNING Database option mismatch: PDB installed version NULL” in PDB_PLUG_IN_VIOLATIONS (文档 ID 2020172.1).该文档中有详细的描述,认为这是12.2的一个加强。

Some warnings in PDB_PLUG_IN_VIOLATIONS prevent you from actually opening the PDB in READ WRITE mode; this is not one of them.  You can ignore these messages.   It is okay for a PDB to have a subset (fewer) options installed than the CDB into which it is plugged.  
 (The reverse is NOT true, however -- the CDB must always have the same or more options as its PDBs).   

Unpublished Bug 16192980 : NO SIMPLE WAY TO CLEAN ROWS FROM PDB_PLUG_IN_VIOLATIONS AFTER DBMS_PDB CALL has been filed to request a way to clear out no-impact warnings from PDB_PLUG_IN_VIOLATIONS.  This enhancement is implemented in versions > 12.2.0.1.

 

我们尝试过将组件reinstall然后再install是可以的,但是组件较多,大约8个组件,尤其是java或xdb相关组件比较麻烦,因此我们将pdb删除然后重新创建了pdb进行加载。最终解决了该问题。

总的来接,整个过程遇到了几个小问题,但是还算顺利!

其中涉及几篇文档供参考:

PDB Opens up in Restricted mode after migrating from Non-CDB To CDB environment (Doc ID 2202516.1)
PDB does not come out of Restricted Mode due to ORA-959 in PDB_PLUG_IN_VIOLATIONS (Doc ID 2167662.1)
PDB Is Always In Restricted Mode (Doc ID 1933110.1)
PDB in Restrict Mode Causes Issues (Doc ID 1949188.1)
Pluggable Databases Opened in Restricted Mode After PSU Patching (Doc ID 2225006.1)

关注dbDao.com的新浪微博

扫码加入微信Oracle小密圈,了解Oracle最新技术下载分享资源

TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569