基于版本:19c (12.2.0.3) AskScuti
创建方法:DBCA静默本地克隆PDB。根据 CDB1 中的 PDB1 克隆出 CDB1 中的 PDB_CLONE
对应路径:Creating a PDB --> Cloning --> 无对应路径(DBCA)
在容器数据库CDB里面如何创建PDB,官方文档给出了一张创建PDB技术选项图,图片如下:
注意:DBCA静默克隆建库,方法没有在此图片上显示,本文将DBCA方法记在Cloning下面。
另外:DBCA克隆或重定位PDB,不支持开启了OMF的CDB, CDB1和CDB2必须都为归档模式。
内容总览
1. 概述
2. CDB1:PDB1确认用户和数据
3. CDB1进行DBCA本地克隆
4. CDB1验证
1. 概述
通过DBCA工具进行静默本地克隆,根据 CDB1 中的 PDB1 克隆出 PDB_CLONE。
CDB1(PDB1)中有个用户SCOTT,下面有张表 EMP。
把 CDB1下面的 PDB1 静默创建克隆出 PDB_CLONE,并验证 PDB_CLONE 中是否存在SCOTT用户及EMP表。
2. CDB1:PDB1确认用户和数据
[oracle@erp ~]$ rlwrap sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 29 21:55:59 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- --------- ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO SQL> alter session set container=pdb1; Session altered. SQL> select count(1) from scott.emp; COUNT(1) ---------- 14
3. CDB1进行DBCA本地克隆
dbca -silent -createPluggableDatabase -sourceDB cdb1 -createPDBFrom PDB -pdbName pdb_clone -sourcePDB pdb1
过程
[oracle@erp ~]$ dbca -silent -createPluggableDatabase -sourceDB cdb1 -createPDBFrom PDB -pdbName pdb_clone -sourcePDB pdb1 Prepare for db operation 13% complete Creating Pluggable Database 15% complete 19% complete 23% complete 31% complete 53% complete Completing Pluggable Database Creation 60% complete Executing Post Configuration Actions 100% complete Pluggable database "pdb_clone" plugged successfully. Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/pdb_clone/cdb1.log" for further details.
4. CDB1验证
[oracle@erp ~]$ rlwrap sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 29 22:20:11 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- --------- ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB_CLONE READ WRITE NO SQL> alter session set container=pdb_clone; Session altered. SQL> select count(*) from scott.emp; COUNT(*) ---------- 14