Oracle 12C 引入了 CDB 与 PDB 的新特性,在 ORACLE 12C 数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB 全称为 Container Database,中文翻译为数据库容器,PDB 全称为 Pluggable Database,即可插拔数据库。在 ORACLE 12C 之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入 ORACLE 12C 后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

CDB 组件(Components of a CDB)

一个 CDB 数据库容器包含了下面一些组件:

  • ROOT 组件
    ROOT 又叫 CDB$ROOT,存储着 ORACLE 提供的元数据和 Common User,元数据的一个例子是 ORACLE 提供的 PL/SQL 包的源代码,Common User 是指在每个容器中都存在的用户。

  • SEED 组件
    SEED 又叫 PDB$SEED,这个是你创建 PDBS 数据库的模板,你不能在 SEED 中添加或修改一个对象。一个 CDB 中有且只能有一个 SEED。

  • PDBS
    CDB 中可以有一个或多个 PDBS,PDBS 向后兼容,可以像以前在数据库中那样操作 PDBS,这里指大多数常规操作。

这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个 PDB 是一个容器。每个容器在 CDB 中都有一个独一无二的的 ID和名称。

注意:

  1. 一个 CDB 可以包含 253 个 PDB(去掉一个是 seed 还能创建 252 个 PDB)。

  2. 文件

    1. 数据文件:ROOT,SEED 以及每一个 PDB 的数据文件是独立的。

    2. REDO:一个单实例的 CDB 有一个 redo log;RAC 环境中每个实例有一个 redo log。

    3. control file: 一个 CDB 也仅有一个控制文件(可以多路复用)。

    4. 参数文件:一个 CDB 使用一个 SPFILE 或者一个 PFILE,其中为 ROOT 设置的参数的值可以被 PDB 继承。另外,也可以使用 ALTER SYSTEM 语句来设置 PDB 的参数。对参数文件执行操作时,必须使用 common user 并且使用 AS SYSDBA、ASSYSOPER、AS SYSBACKUP来连接数据库。要创建 CDB,必须要将初始化参数 ENABLE_PLUGGABLE_DATABASE 的值设置为 TRUE。

  3. 进程:只有一组后台进程,它们被 ROOT 和所有 PDB 共享。

  4. 数据库设置

    1. 字符集:所有 PDB 的字符集都使用 CDB 的字符集。

    2. 时区:可以设置所有 PDB 的时区与 CDB 相同,也可以单独为 PDB 设置时区。

    3. db_size:块大小被应用于整个 CDB。

    4. db_name:ROOT 的全局数据库名就是 CDB 的全局数据库名;PDB 的全局数据库名是由 PDB name 和 DB_DOMAIN 参数共同定义的。

  5. 表空间:

    1. ROOT 与每一个 PDB 都有自己的 SYSAUX 表空间和 SYSTEM 表空间。可以为 ROOT 和每一个 PDB 设置默认表空间。而默认的临时表空间对于整个 CDB 只有一个,但是可以为每个 PDB 创建临时表空间。

    2. UNDO 表空间对于 CDB 是唯一的。在 CDB 中,初始化参数UNDO_MANAGEMENT 必须被设置为 AUTO。当前容器为 PDB 时,无法通过数据字典视图查看 UNDO 表空间,只能通过动态性能视图。

PDB 简介

PDB新特点的优势

  • 可以把多个 PDB 集成进一个平台。

  • 可以快速提供一个新的 PDB 或一个已有 PDB 的克隆。

  • 通过拔插技术,可以快速把存在的数据库重新部署到一个新平台上。

  • 多个 PDB 数据库补丁或升级一次完成。

  • 通过把单个 PDB 拔插到较高版本的不同 CDB,可以补丁或升级一个PDB。

  • 从同一个 CDB 中众多 PDB 中分离出某个 PDB 的内容。

  • 分离这些 PDB 应用管理员的责任。

PDB新特点的功能

  • 在一个 CDB 中,你可以拥有很多 PDB。

  • PDB 和 12.1 之前版本的普通数据库是向后兼容的。

  • PDB 对应用是透明的——你不需要改变客户端代码或数据库对象。

  • RAC 中每个实例作为一个整体打开 CDB(因此 CDB 和其中的 PDB 数据库版本都是相同的)。

  • 会话仅仅看到它自己连接的那个 PDB。

  • 你可以从一个 CDB 拔出一个 PDB,然后插入另一个 CDB。

  • 你可以在同一个 CDB 或不同 CDB 间克隆 PDB。

  • 资源管理器随着 PDB 的功能得以扩展。

  • 通过 SQL 语句实现了实体 PDB 的操作(创建,拔出,插入,克隆,清除,设置打开模式)。

  • 当连接到所谓的“根”(ROOT)时,CDB 管理员来执行这些操作。

  • 所有的 PDB 能被一次备份,但可以分别单独恢复。

PDB的详解

  • 每个 PDB 有自己的私有数据字典用于用户创建的数据库对象;另一方面,CDB 作为一个整体也包含 Oracle 提供系统的数据字典,其中,每个数据字典定义自己的命名空间。换句话说,有全局数据字典(CDB级)和本地数据字典(PDB级)。

  • 有新的分开的数据字典架构,该架构允许一个 PDB 被快速从一个 CDB 拔出并插入一个不同的 CDB。

  • 每个 PDB 只能看到 Oracle 提供系统的只读定义。

  • 有全局数据库参数,也有本地数据库参数。PDB 参数仅仅属于特定的 PDB,并且拔出后,PDB 参数也将保持不变。

  • 数据库用户可以是全局的(CDB)或本地的(PDB)。SYS 和 SYSTEM 用户一开始就在两级 DB 中存在。如果你在 CDB 中创建了一个新用户,那么你在 PDB 中也能看到这个用户。在 PDB 中创建的用户只能在该 PDB 中使用。

  • 临时表空间可以是全局或本地的。

  • Redo 日志和 Undo 表空间都是全局的(CDB级)。

  • Data Guard 在 CDB 级作为一个整体发挥作用;RMAN 调度的备份也作为一个整体在 CDB 级完成;任何时候,你可以只备份一个 PDB。

  • 应用连接 PDB 时,不需做代码修改;系统管理员可以连接 CDB;连接串中的服务名确定目标 PDB。

  • PDB 允许更加清晰的声明定义一个应用;一个 PDB 对同一个 CDB 里的其他 PDB一无所知;每个 PDB 是个密闭的容器。这保证了新层面 DB 的独立和安全。

Oracle:容器数据库简介相关推荐

  1. 1、oracle数据库简介

    1.ORACLE数据库简介 数据库指的是存储和管理数据的仓库,是一种文件集合(包括数据文件.临时文件.日志文件和控制文件),我们一般所说的数据库指的是数据库管理系统,一种用于操作数据库的软件,简称DB ...

  2. 本周日直播丨Oracle 多租户容器数据库体系结构

    内容摘要 多租户容器数据库是Oracle 12c 版本比较重要的一个新特性,也是Oracle 12c OCM认证考试官方考试大纲中的重要考点 .本次课程带大家一起学习Oracle 12c 多租户容器数 ...

  3. oracle 12c容器数据库备份和恢复,oracle 12c数据库备份与恢复

    oracle用得不是很多,但总体用起来也没啥问题,因为大多数时候就是增删查改的操作,这些跟其他数据库也没多大区别.不过当遇到备份和恢复的时候,才发现区别是比较大的,因此留下这篇文章做一个记录,方便以后 ...

  4. oracle关闭数据库容器,Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭...

    Oracle12c中引入的多宿主选项(multitenant option)允许一个容器数据库容纳多个独立的可插拔数据库(PDB).本文将说明如何启动和关闭容器数据库(CDB)和可插拔数据库(PDB) ...

  5. oracle12c数据库基础教程,Oracle 12C 数据库基础教程

    章 Oracle 12c简介 1 1.1 Oracle 12c简介 1 1.2 Oracle 12c产品系列 2 1.3 Oracle 12c新特性 2 1.3.1 插接式数据库PDB 2 1.3.2 ...

  6. oracle12之 多租户容器数据库架构

    解读: 这张幻灯片展示了三个被部署的应用程序的整合 三个不同的非cdbs成为一个单一的.幻灯片中的图形显示了一个多租户 容器数据库有四个容器:根和三个可插入的数据库.每一个 可插入数据库有它自己的专用 ...

  7. ORACLE内存结构简介

    ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果 ...

  8. oracle 临时表存在哪里_openGauss魔改PG?它能兼容Oracle的数据库表吗?

    作者介绍 洪烨,openGauss Contributor,多年银行业系统架构设计及DBA实战经验,<DB2数据库内部解析与性能调优>作者. openGauss的前世今生 上一篇看到很多朋 ...

  9. oracle 自治数据库 培训,Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库

    原标题:Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库 在旧金山时间10月2日中午,也就是在Larry宣布自治数据库的产品计划之后,Oracle数据库的研发负责人,也是被称 ...

最新文章

  1. 2022-2028年中国女式西装行业研究及前瞻分析报告
  2. POJ 3225 Help with Intervals(线段树)
  3. 如何做好配电室、临时用电安全管理?
  4. mysql中查询触发器的语句
  5. 实例21:python
  6. 详情和 PoC 发布后,谷歌匆忙修复严重的 Gmail 漏洞
  7. Python基础---注意事项
  8. pythonopencv算法_OpenCV算法精解 基于Python与C++pdf
  9. 在Windos上安装Nginx
  10. mysqli_connect函数未开启_CRMEB打通版linux系统部署客服开启长链接不成功
  11. hdoj2046骨牌铺方格题解+拓展(递推/斐波那契)
  12. 复旦大学入学计算机考试大纲,《计算机办公自动化》课程入学考试考核大纲和样题-复旦大学外国留学生...
  13. Android文件的读写
  14. 梯形法则 matlab代码,matlab第二章常微分方程的数值解法
  15. 幼儿园数学目标_大班数学领域目标
  16. 阿里云服务器linux 启动网卡失败,提示does not seem to be present,delaying initialization
  17. layui 调整表格样式
  18. codeforces A. Statues
  19. Windows 缓冲区溢出与数据执行保护DEP
  20. 安卓DEVICE ID为何有15位和16位

热门文章

  1. python内置类属性_Python内置方法和属性应用:反射和单例(推荐)
  2. MySQL 5.7安装(linux)
  3. Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))
  4. 构建之法第二章读后感
  5. 1小时学会建站(二):购买及绑定域名
  6. 课堂练习之谁是水王(一)
  7. git push -u origin master 上传出错问题
  8. openssl生成https证书 (转)
  9. iReport工具的使用(三)
  10. windowsxp的自动更新关闭后怎么能不提示?