说明:版本12.2.0.1

12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/write 读写模式也可以 clone 。  local undo mode 也是oracle推崇的模式。

说明: shared undo 与 Local undo 模式切换 可以参考 http://blog.csdn.net/zhang123456456/article/details/71374528

要求:
1、 Archive Log Enabled  
2、 Local Undo Enabled 
3、 destination CDB must have a public database link to the source CDB,have sufficient privileges to use the database link.

一、  克隆本地pdb

[oracle@12c ~]$ sqlplus / as sysdba
-- 检查是否开启 local undo
SQL> 
col PROPERTY_NAME for a25;
col PROPERTY_VALUE for a25;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME  PROPERTY_VALUE
------------------------- -------------------------
LOCAL_UNDO_ENABLED  TRUE

SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
SQL> show parameter pdb_file_name_convert
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
pdb_file_name_convert     string
-- clone pdb 数量为一  , 注意这里 pdb_file_name_convert 参数生效级别设置的是 session , 如有需要,自行设置为全局
SQL> alter session set pdb_file_name_convert='pdb01','pdb02';
Session altered.
SQL> create pluggable database pdb02 from pdb01;
Pluggable database created.
SQL> alter pluggable database pdb02 open;
Pluggable database created.
SQL> alter pluggable database pdb02 close immediate;
Pluggable database altered.
-- clone pdb 数量为多
SQL> alter session set pdb_file_name_convert='pdb01','pdb02,pdb03';
Session altered.
SQL> create pluggable database pdb03 from pdb01;
Pluggable database created.
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  MOUNTED
5 PDB03  MOUNTED
SQL> alter pluggable database pdb02 open;
Pluggable database altered.
SQL> alter pluggable database pdb03 open;
Pluggable database altered.
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  READ WRITE NO

5 PDB03  READ WRITE NO

二、  克隆远程pdb
--源端
SQL> create user c##andy identified by andy container=all;
User created.
SQL> grant dba to c##andy container=all;
Grant succeeded.
-- 目标端cdb执行

SQL> create database link clonePdb connect to c##andy  identified by andy using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.219.24.17)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = pdb01)))';
Database link created.

-- 源端
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO

-- 目标端cdb
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  READ WRITE NO
5 PDB03  READ WRITE NO

SQL> alter session set pdb_file_name_convert='pdb01','pdb04';
Session altered.
-- 通过 dblink 克隆源端的 pdb 
SQL> create pluggable database pdb04 from pdb01@clonePdb;
Pluggable database created.
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  READ WRITE NO
5 PDB03  READ WRITE NO
6 PDB04  MOUNTED
SQL> alter pluggable database pdb04 open;
alter pluggable database pdb04 open
*
ERROR at line 1:
ORA-14694: database must in UPGRADE mode to begin MAX_STRING_SIZE migration
SQL> ho oerr ora 14694
14694, 00000, "database must in UPGRADE mode to begin MAX_STRING_SIZE migration"
// *Cause:  An attempt was made to update the MAX_STRING_SIZE parameter
//          to EXTENDED when the database was not in UPGRADE mode.
//* Action: Restart the database in UPGRADE mode, modify the parameter, 
//          run the utl32k.sql script in $ORACLE_HOME/rdbms/admin, and
//          restart the database in normal mode.

说明: 这个报错的原因是目标端使用了12c的新特性extended data type ,源端没有使用这个新特性,从源端克隆过来的pdb需要扩展 extended data type 新特性与目标端保持一致。有关新特性extended data type ,
参考http://blog.csdn.net/zhang123456456/article/details/71713201
-- 新克隆的pdb拓展 extended data type 新特性
SQL> alter session set container=pdb04;
Session altered.
SQL>  startup upgrade;
Pluggable Database opened.
SQL> show parameter max_string_size
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
max_string_size     stringEXTENDED
SQL> @$ORACLE_HOME/rdbms/admin/utl32k.sql
SQL> shutdown immediate;
Pluggable Database closed.
SQL> startup;
Pluggable Database opened.
SQL> alter session set container=cdb$root;
Session altered.
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  READ WRITE NO
5 PDB03  READ WRITE NO
6 PDB04  READ WRITE NO

Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)的更多相关文章

  1. Oracle 12c 新特性之 PDB 级别闪回数据库

    在Oracle Database 12.1中,闪回数据库操作仅限于 CDB ,Oracle Database 12.2支持 CDB 与 PDB 数据库的闪回. PDB 的还原点种类:1. normal ...

  2. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  3. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  4. ORACLE 12C新特性——CDB与PDB

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  5. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...

  6. Oracle 12c新特性(For DBA)

    一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...

  7. Oracle 12C 新特性 - “可插拔数据库”功能

    Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积 ...

  8. Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED

    Oracle12c开始,我们在获取SQL语句的执行计划时,也会经常看到"TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,这个操作到底是什么意思呢 ...

  9. Oracle 12C 新特性之在线重命名、迁移活跃的数据文件

    Oracle 数据库 12c 版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移 ...

随机推荐

  1. javascript的闭包与一次重构的感受

    有没有这么一个场景,你的一个动作需要在所有异步方法执行完毕后,再进行操作?然而你对异步方法何时执行完毕感到困扰,只能在每个方法中写回调,在回调中重复劳动? 偶然的,想起了之前经理讲过的闭包的概念,偶然 ...

  2. python 自动化接口测试(6)

    迎接新的一波更新吧,这次是基于图灵机器人的一个api接口的测试. 这是api的接口:http://www.tuling123.com/openapi/api 我们试着通过浏览器直接访问看下 这是反馈的 ...

  3. android设备使用usb串口传输数据

    首先介绍两个开源项目一个是Google的开源项目:https://code.google.com/archive/p/android-serialport-api/ 另一个是我们这次介绍的开源项目:h ...

  4. 核心J2EE模式 - 截取过滤器

    核心J2EE模式 - 截取过滤器 背景 呈现层请求处理机制接收许多不同类型的请求,这些请求需要不同类型的处理.一些请求被简单转发到适当的处理程序组件,而其他请求必须在进一步处理之前进行修改,审核或未压 ...

  5. C#小知识点记录,对象的深拷贝

    在CSDN中的定义是: public static string CompareExchange( ref string location1, string value, string compara ...

  6. Why we don’t recommend using List<T> in public APIs

    不推荐List<T>做API原因有如下两点:1.首先List<T> 设计之初就没有设计成可扩展的,我们不能重新其任何方法.这就意味着,我们操作List<T>的时候却 ...

  7. three.js提供的几何体

    1.简单几何体 three.js提供的稍微简单点的几何体包括有:PlaneGeometry(平面).CircleGeometry(圆形).ShapeGeometry(塑性).CubeGeometry( ...

  8. 搜索结果Refinement 行为总结之 multi-selection refinement

    几乎所有的购物网站的搜索结果页面都会提供refinement (filtering) 给用户去过滤产品,以便能更快找到自己想要的产品.(做的都是国外的项目,不太清楚这个功能地道的中文名是什么.所以就暂 ...

  9. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6

    1. 由于使用Python Selenium做网页自动化测试时,有截取网页上的中文信息保存到测试结果中,最终出现编码错误如下: File "D:/PycharmProjects/AutoTe ...

  10. C#如何向word文档插入一个新段落及隐藏段落

    编辑Word文档时,我们有时会突然想增加一段新内容:而将word文档给他人浏览时,有些信息我们是不想让他人看到的.那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插 ...