Oracle 12c一个重要新特性是插接式数据库。

插接式数据库由一个使用 CDB(Container Database)选项创建的容器数据库和一个或多个 PDB(Pluggable Database)组成,CDB 作为容器容纳 PDB,而 PDB 彼此隔离,就像一个独立的数据库般在 CDB 中存在。PDB 是一组 Schema 的集合,在 CDB 中作为一个独立的组件容器而存在。从这个意义上说,PDB 也是一种容器(Container), 而 CDB 中可以存在多种不同类型的容器。

CDB 的组成

① ROOT

Root 是一个系统提供的容器,用于存储公用用户,公用用户可以连接到其他容器,可以查看系统级元数据,这个 Root 容器被命名为 CDB$ROOT.

② Seed PDB

种子 PDB 是一个系统级模版,CDB 可以用这个模版创建其他 PDB,种子 PDB 的名称是 PDB$SEED,其中的对象不能被修改。这其中最为主要的是 SYSTEM 和 SYSAUX 表空间文件,这是一个种子数据库,已经内置了字典对象,如果使用模板方式建库,PDB 则由此克隆创建出来。

容器 CDB$ROOT 和 PDB$SEED 对于一个插接式数据库来说是必须的基本组件,这两者构成了插接式数据库的基础支撑。其关系如下图所示:

③ PDB

PDB 是用户基于特定需求建立的对象容器,在创建 CDB 时,可以不同时创建 PDB,PDB 随后可以根据用户的需求创立。

插接式数据库的主要特性:

可以通过现有数据库快速配置和部署新的环境;

通过 unplug 和 plug 可以快速进行数据库迁移和整合;

集中的部署可以加快升级迁移的过程,缩减维护成本;

方便的整合和拆分方式便于集中部署或在压力过大时迅速拆分部署;

分离管理员的职责,强化安全管理;

在 CDB 的模式下,由于 PDB 具有独立的 SYSTEM 和 SYSAUX 表空间,其元数据和系统元数据自然分离,用户数据的字典信息也就无需再记录到系统的元数据中,这对于核心的元数据是一种更好的隔离和保护,下图描述了在 CDB、PDB 模式下用户数据和元数据的分离关系,其中数据字典元数据也就是 Root Container:

各个容器都有一个标识(CON_ID),其中CDB实例的ID为0,CDB$ROOT 的ID为1,PDB$SEED的ID为2,pdb从3开始分配。

Oracle 12c 容器讲解的更多相关文章

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

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

  2. oracle 12c 创建PDB用户即Local User (PDB与CDB)

    Oracle 12C用户创建与表空间分配  数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace ...

  3. Oracle 12c创建用户时出现“ORA-65096: invalid common user or role name”的错误

    这篇文章主要介绍CDB和PDB的基本管理,资料来源oracle官方. 基本概念: Multitenant Environment:多租户环境 CDB(Container Database):数据库容器 ...

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

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

  5. docker安装Oracle 12c

    1.安装阿里的docker源: cat /etc/docker/daemon.json { "registry-mirrors": ["https://pee6w651. ...

  6. Oracle 12c用户和安全管理

    前言: Oracle 12c的多租户(multitenant)环境与SQL Server的架构非常相似,CDB$ROOT类似于master.PDB$SEED类似于model.各个pluggable d ...

  7. Oracle 12c pdb的数据泵导入导出

    12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.在为pdb做数据泵导入导出时和传统的数据库有少许不同.           1,需要为pdb添加tansnames ...

  8. Oracle 12c 添加scott用户

    对于熟悉Oracle或者接触过Oracle的人,scott这个用户大家一定相当的熟悉.12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.pdb中默认不包含scott用 ...

  9. oracle 12c多租户下的日常操作变化

    Oracle 12c创建用户时出现“ORA-65096: invalid common user or role name”的错误 在oracle中,引入了多租户概念,以前是一个instance对应一 ...

随机推荐

  1. 数据库SQLserver(课本)

    一.SQL server的部署 1.数据库的基本概念 数据库通常是一个由行和列组成的二维表 数据表中的行通常叫做记录或元祖 数据表中的列通常叫做字段或属性 2.主键和外键 主键:定义主键可以保证数据的 ...

  2. SPL之Iterator和ArrayAccess的结合使用

    <?php namespace TabControl; class MyIterator implements \Iterator, \ArrayAccess { private $data = ...

  3. 漏洞复现——bash远程解析命令执行漏洞

    漏洞描述:Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞 漏洞原理:bash通过以函数名作为环境变量名,以“( ...

  4. loj#6062. 「2017 山东一轮集训 Day2」Pair hall定理+线段树

    题意:给出一个长度为 n的数列 a和一个长度为 m 的数列 b,求 a有多少个长度为 m的连续子数列能与 b匹配.两个数列可以匹配,当且仅当存在一种方案,使两个数列中的数可以两两配对,两个数可以配对当 ...

  5. 在c++运行后出现PDB或者什么巴拉巴拉已经加载符号了的话

    “stl常用排序算法.exe”(Win32): 已加载“E:\vs2015\project\stl常用排序算法\Debug\stl常用排序算法.exe”.已加载符号. “stl常用排序算法.exe”( ...

  6. python 小练习4

    给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个连续子序列,使其和最大,输出最大子序列的和. 例如,对于L=[2,-3,3,50], 输出53(分析:很明显,该列表最大连续子序 ...

  7. 函数使用五:MIR7 发票预制 BAPI_INCOMINGINVOICE_PARK

    引自:http://blog.csdn.net/champaignwolf/article/details/51422329 FUNCTION zincominginvoice_park. *&quo ...

  8. IDEA Activiti Designer插件---actiBPM汉字乱码问题

    1.找到IDEA的安装目录 2.用编辑器打开,在文件末尾添加 -Dfile.encoding=UTF-8

  9. python使用MySQLdb模块连接MySQL

    1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: MySQL-python:是封装了MySQL C驱动的Python驱动:mysql-connector-python:是MyS ...

  10. VLC添加水印

    Name: LibVLC control APIDescription: VLC media player external control libraryVersion: 2.1.3 参照:http ...