在12C R1版本中只支持Global Shared Undo模式,所有container共享一个UNDO表空间;在12C R2引入了PDB Local Undo模式,每个container都有自己的UNDO 表空间,对于RAC是每

个实例每个container都有自己的UNDO表空间。在DBCA时会有Local Undo选项,且默认勾选。

  在12c R1版本中clone PDB源库需要打开在read only只读模式 ,12c R2版本中引入了local undo mode, PDB源库在read write读写模式也可以clone。

克隆PDB要求:

  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

可以通过图形化工具DBCA、命令行、em express等方式创建和删除PDB,该处只描述命令行方式操作。

一、创建PDB

1. 克隆种子容器

SQL> select * from v$dbfile;      #查看路径

SQL> show parameter db_create_file_dest;

SQL> create pluggable database PDB3 admin user song identified by song file_name_convert=('/home/oracle/u01/app/oracle/oradata/orcl/pdbseed','/home/oracle/u01/app/oracle/oradata/orcl/PDB3');

2. 克隆本地PDB

1) 查看归档是否打开

SQL> archive log list;

2) local undo是否开启

SQL> col PROPERTY_NAME for a25;

SQL> col PROPERTY_VALUE for a25;

SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';

3) 开始克隆

SQL> show pdbs;

a)使用OMF功能创建,不推荐使用该功能创建PDB,路径和数据文件名不是常规的。

SQL> show parameter DB_CREATE_FILE_DEST;        #OMF功能路径

SQL> show parameter pdb_file_name_convert;        #设置初始化参数

SQL> alter system set db_create_file_dest='/home/oracle/u01/app/oracle/oradata/orcl';

SQL> alter session set pdb_file_name_convert='ORCLPDB','PDB5';       

SQL> create pluggable database PDB5 from ORCLPDB;

报错:ORA-65005: 文件缺少文件名模式或其文件名模式无效,未设置DB_CREATE_FILE_DEST参数

b)使用file_name_convert创建

SQL> create pluggable database PDB4 from ORCLPDB file_name_convert=(
   '/home/oracle/u01/app/oracle/oradata/orcl/orclpdb','/home/oracle/u01/app/oracle/oradata/orcl/pdb4');

SQL> alter pluggable database pdb4 open;

3. 克隆异地PDB

源端

SQL> create user c##sonny identified by sonny container=all;

SQL> grant dba to c##sonny container=all;

目标端

create database link clonepdb connect to c##sonny identified by sonny using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.208)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLPDB)))';

SQL> create pluggable database sonnypdb from ORCLPDB@clonepdb;

$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql脚本

二、删除PDB

PDB需要处于MOUNTED状态才可以删除

SQL> alter pluggable database pdb5 close immediate;

SQL> drop pluggable database pdb5 including datafiles;

SQL> show pdbs;

至此PDB的创建与删除就完成了,下面为PDB的开启与关闭操作:

SQL>alter pluggable database orclpdb open;        #启动单个PDB
SQL>alter pluggable database all open;           #启动所有PDB
SQL>alter pluggable database orclpdb close immediate;   #关闭单个PDB
SQL>alter pluggable database all close immediate;      #关闭所有PDB

自动启动所有PDB
数据库启动的时候所有的PDB的状态为MOUNTED,以下设置自动启动(CDB级别操作):
create or replace trigger sys.pdb_startup
after startup on database
begin
execute immediate 'alter pluggable database all open';
end pdb_startup;
/

克隆pdb文章

https://www.cnblogs.com/andy6/p/6867240.html

切换shared undo/local undo文章

https://blog.csdn.net/zhang123456456/article/details/71374528

Oracle12c创建及删除PDB的更多相关文章

  1. 2.oracle 12c 创建-访问-关闭-删除PDB

    1.创建PDB SQL> select name from v$datafile;   NAME ------------------------------------------------ ...

  2. Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb

    实验环境: SQL> select * from v$version;BANNER                                                         ...

  3. linux命令 - ln - 创建和删除软、硬链接

    linux命令 - ln - 创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件 ...

  4. 各种隐藏 WebShell、创建、删除畸形目录、特殊文件名、黑帽SEO作弊(转自核大大)

    其实这个问题,经常有朋友问我,我也都帮大家解决了…… 但是现在这些现象越来越严重,而且手法毒辣.隐蔽.变态,清除了又来了,删掉了又恢复了,最后直接找不到文件了,但是访问网站还在,急的各大管理员.站长抓 ...

  5. DOM创建和删除节点、HTML DOM常用对象[转]

    创建和删除节点:——核心DOM   1. 创建单个元素节点:3步:      1. 创建空元素节点对象:         var elem=document.createElement("标 ...

  6. MySQL索引的创建、删除和查看

    MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...

  7. linux下创建和删除软、硬链接

    linux下创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制 ...

  8. git创建和删除远程分支

    问题描述:           使用git创建和删除远程分支 问题解决:              (1)git创建本地分支 注:            如上所示,使用命令 git branch -a ...

  9. oracl使用DataBase Configuration Assistant创建、删除数据库

    原文:oracl使用DataBase Configuration Assistant创建.删除数据库 可以使用DataBase Configuration Assistant来创建一个心得数据库.Da ...

随机推荐

  1. CentOS7 日常操作

    A 安装netstat1.首先配置好本机的yum源: yum repolist all2.利用netstat命令,却提示:-bash: netstat: command not found3.执行yu ...

  2. 用vuex实现购物车功能

    效果图 展示目录结构 product组件(纯静态代码) cart组件(纯静态代码) info组件(纯静态代码) 完成以上的三个组件,现在要开始调用这些组件,在App.vue中调用 如果你的姿势正确的话 ...

  3. mysql_存储引擎层-innodb buffer pool

    buffer pool 是innodb存储引擎带的一个缓存池,查询数据时,首先从内存中查询 数据如果内存中存在的话直接返回. innodb buffer pool 和 qcache 的区别:Qcach ...

  4. python修改文件

    文档username.txt 将文件中密码123456改成67890: 方法一:(简单粗暴) 1.打开文件 2.读出数据 3.修改数据 4.清空原来文件,将新的内容写进去 f = open('user ...

  5. 机器学习--如何将NLP应用到深度学习(3)

    数据收集以后,我们下面接着要干的事情是如何将文本转换为神经网络能够识别的东西.   词向量 作为自然语言,只有被数学化才能够被计算机认识和计算.数学化的方法有很多,最简单的方法是为每个词分配一个编号, ...

  6. Linux-档案权限概念

    第一欄代表這個檔案的類型與權限(permission): 這個地方最需要注意了!仔細看的話,你應該可以發現這一欄其實共有十個字元:(圖5.2.1及圖5.2.2內的權限並無關係) 圖5.2.2.檔案的類 ...

  7. JMeter性能测试入门-不同类型线程组的使用

    jmeter不同线程组的详解 在做性能测试之前,我们来了解一下JMeter多个不同线程组的应用.首先,JMeter提供了三个基本的线程组,分别为: Thread Group setUp Thread ...

  8. Java课堂笔记(三):抽象类和接口

    在面向对象一文中,我们说了多态的一个功能是将“做什么”和“怎么做”分离开来,所采用的方法是将不同的具体实现放在不同的子类中,然后向接口中传入一个父类对象的引用.而本篇博客要说的内容则为接口(此处&qu ...

  9. java高级开发面试总结

    Java高级工程师面试题总结及参考答案 (转载)博客原文链接:https://www.cnblogs.com/java1024/p/8594784.html 一.面试题基础总结 1. JVM结构原理. ...

  10. 面试一个 3 年 Java 程序员,一个问题都不会!

    大家周末愉快,当你看到这篇文章的时候,事情已经过去几天了. 刚从洽谈室走出来,心情很复杂! 栈长面试过很多人,不乏知识渊博.技能顶尖的选手,但从未遇到过工作了三年,却一个问题都答不上来.. 这场史无前 ...