非CDB 数据库的名称是:12cNonPDB
- 要将 non-CDB 转换为 PDB,必须彻底关闭数据库:
. oraenv
--将环境变量设置为 12cNonPDB
sqlplus / as sysdba
sql> shutdown immediate
复制
- 彻底关闭数据库后,以只读模式打开它:
sql> startup open read only
复制
- 描述数据库并生成 xml 文件:
BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/12cNonPDB.xml');
END;
/
复制
- 关闭数据库:
sql> shutdown immediate
复制
- 在目标 CDB 环境中执行下面的操作来检查兼容性:
SET SERVEROUTPUT ON;
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/12cNonPDB.xml')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
复制
如果有报错,可以通过 cdb 数据库的 PDB_PLUG_IN_VIOLATIONS 查看。
SQL> col cause for a20
SQL> col name for a20
SQL> col message for a35 word_wrapped
SQL> select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='<noncdb database name>';
复制
如果出现以下错误:
ERROR PSU bundle patch 1 (PSU Patch 12345): Installed in the CDB but not in the PDB. ERROR PSU bundle patch 1 (PSU Patch 12345): Installed in the PDB but not in the CDB.
复制
可参考 Note 1935365.1 来修复。
- 连接到目标 CDB:
. oraen
--将环境变量设置为 ACDB
sqlplus / as sysdba
复制
- 创建 pluggable database:
CREATE PLUGGABLE DATABASE APDB USING '/tmp/12cNonPDB.xml'
COPY
FILE_NAME_CONVERT = ('/u01/app/oracle/12c/oradata/12cNonPDB/', '/u01/app/oracle/oradata/12c/ACDB/APDB/');
复制
- 切换到 PDB container 并运行 “$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql”
sql> ALTER SESSION SET CONTAINER=APDB;
sql> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
复制
- 启动 PDB 并检查 open mode:
ALTER PLUGGABLE DATABASE OPEN;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
APDB READ WRITE
1 row selected.
SQL>
复制
源数据字符集(NLS_CHARACTERSET)需要与目标环境 CDB 的 NLS_CHARACTERSET 相同,或者源数据库字符集是目标环境 CDB 的 NLS_CHARACTERSET 的二进制子集,源和目标的 NLS_NCHAR_CHARACTERSET 需要相同。
如果 PDB 是 Unicode 字符集,建议创建字符集为 AL32UTF8 的 CDB。请注意,我们无法使用 DMU 迁移 CDB 的字符集。
参考:
NOTE:1935365.1 - Multitenant Unplug/Plug Best Practices
NOTE:1564657.1 - How to migrate an existing pre-12c database (non-CDB) to 12c CDB database?
How to Convert Non-CDB to PDB Database in 12c - Testcase (Doc ID 2012448.1)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
691次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
635次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
546次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
494次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
490次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
480次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
469次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
418次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
358次阅读
2025-05-05 19:28:36