其本质就是在12c中创建个需要的运行环境给旧的数据库
a) 升级一个 12.1 之前的数据库到 12.1 的版本(非 CDB)
您可以使用 dbua 或者手动的方法升级一个 12.1 之前的数据库版本到 12.1 非 CDB 的数据库
Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1) Note 1503653.1
Complete Checklist to Upgrade the Database to 12c Release 1 using DBUA Note 1516557.1
b) 插入升级后的数据库到 CDB
* 这篇文档详述了怎样插入一个升级的/创建的非 12c 的数据库到 CDB 中
设置 ORACLE_SID 变量到非 CDB 数据库
连接到非 cdb 实例
sqlplus / as sysdba
假如实例启动,首先关闭实例
启动数据库在 mount exclusive 模式
打开数据库到 read-only 模式
* 为非 CDB 的数据库产生一个插拔数据库的 Manifest File
执行 dbms_pdb.describe 存储过程产生 manifest file
关闭非 cdb 的实例,为下面的部分准备拷贝数据文件
连接到 CDB,假如它是关闭的状态,启动它。
使用非 cdb 的数据库的 manifest file 创建一个新的可插拔数据库(exnoncdb),参数 file_name_convert 允许您放被拷贝的数据文件在一个不同的路径上。
as clone
using '/opt/oracle/oradata/noncdb/noncdb.xml'
file_name_convert=('/opt/oracle/oradata/noncdb','/stage/oradata/exnoncdb')
copy;
* 转化到可插拔数据的数据字典
现在数据库可以作为可插拔数据库(PDB)打开了,状态是 NEW。然而,它仍然有许多冗余的结构(特别是在 SYS 和 SYSTEM 里)需要通过最后的步骤清理:
连接到新的可插拔数据库 exnoncdb。
运行 $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 。这个脚本需要花比较长的时间运行(超过20分钟)。
更详细的信息可以参照这里的文档。
通过打开这新的可插拔的数据库,关闭它,再打开完成插入操作。
请注意在这个案例中,这些文件是拷贝的,这样还残留有原始数据文件的拷贝。
你应该选择转换已存在文件而不是一个拷贝,推荐做一个完全的数据库备份,因为这样您将可以重建这些文件。
alter pluggable database exnoncdb open;
alter pluggable database exnoncdb close;
alter pluggable database exnoncdb open;