Oracle:容器数据库简介
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和名称。
注意:
一个 CDB 可以包含 253 个 PDB(去掉一个是 seed 还能创建 252 个 PDB)。
文件
数据文件:ROOT,SEED 以及每一个 PDB 的数据文件是独立的。
REDO:一个单实例的 CDB 有一个 redo log;RAC 环境中每个实例有一个 redo log。
control file: 一个 CDB 也仅有一个控制文件(可以多路复用)。
参数文件:一个 CDB 使用一个 SPFILE 或者一个 PFILE,其中为 ROOT 设置的参数的值可以被 PDB 继承。另外,也可以使用 ALTER SYSTEM 语句来设置 PDB 的参数。对参数文件执行操作时,必须使用 common user 并且使用 AS SYSDBA、ASSYSOPER、AS SYSBACKUP来连接数据库。要创建 CDB,必须要将初始化参数 ENABLE_PLUGGABLE_DATABASE 的值设置为 TRUE。
进程:只有一组后台进程,它们被 ROOT 和所有 PDB 共享。
数据库设置
字符集:所有 PDB 的字符集都使用 CDB 的字符集。
时区:可以设置所有 PDB 的时区与 CDB 相同,也可以单独为 PDB 设置时区。
db_size:块大小被应用于整个 CDB。
db_name:ROOT 的全局数据库名就是 CDB 的全局数据库名;PDB 的全局数据库名是由 PDB name 和 DB_DOMAIN 参数共同定义的。
表空间:
ROOT 与每一个 PDB 都有自己的 SYSAUX 表空间和 SYSTEM 表空间。可以为 ROOT 和每一个 PDB 设置默认表空间。而默认的临时表空间对于整个 CDB 只有一个,但是可以为每个 PDB 创建临时表空间。
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、oracle数据库简介
1.ORACLE数据库简介 数据库指的是存储和管理数据的仓库,是一种文件集合(包括数据文件.临时文件.日志文件和控制文件),我们一般所说的数据库指的是数据库管理系统,一种用于操作数据库的软件,简称DB ...
- 本周日直播丨Oracle 多租户容器数据库体系结构
内容摘要 多租户容器数据库是Oracle 12c 版本比较重要的一个新特性,也是Oracle 12c OCM认证考试官方考试大纲中的重要考点 .本次课程带大家一起学习Oracle 12c 多租户容器数 ...
- oracle 12c容器数据库备份和恢复,oracle 12c数据库备份与恢复
oracle用得不是很多,但总体用起来也没啥问题,因为大多数时候就是增删查改的操作,这些跟其他数据库也没多大区别.不过当遇到备份和恢复的时候,才发现区别是比较大的,因此留下这篇文章做一个记录,方便以后 ...
- oracle关闭数据库容器,Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭...
Oracle12c中引入的多宿主选项(multitenant option)允许一个容器数据库容纳多个独立的可插拔数据库(PDB).本文将说明如何启动和关闭容器数据库(CDB)和可插拔数据库(PDB) ...
- 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 ...
- oracle12之 多租户容器数据库架构
解读: 这张幻灯片展示了三个被部署的应用程序的整合 三个不同的非cdbs成为一个单一的.幻灯片中的图形显示了一个多租户 容器数据库有四个容器:根和三个可插入的数据库.每一个 可插入数据库有它自己的专用 ...
- ORACLE内存结构简介
ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果 ...
- oracle 临时表存在哪里_openGauss魔改PG?它能兼容Oracle的数据库表吗?
作者介绍 洪烨,openGauss Contributor,多年银行业系统架构设计及DBA实战经验,<DB2数据库内部解析与性能调优>作者. openGauss的前世今生 上一篇看到很多朋 ...
- oracle 自治数据库 培训,Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库
原标题:Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库 在旧金山时间10月2日中午,也就是在Larry宣布自治数据库的产品计划之后,Oracle数据库的研发负责人,也是被称 ...
最新文章
- 2022-2028年中国女式西装行业研究及前瞻分析报告
- POJ 3225 Help with Intervals(线段树)
- 如何做好配电室、临时用电安全管理?
- mysql中查询触发器的语句
- 实例21:python
- 详情和 PoC 发布后,谷歌匆忙修复严重的 Gmail 漏洞
- Python基础---注意事项
- pythonopencv算法_OpenCV算法精解 基于Python与C++pdf
- 在Windos上安装Nginx
- mysqli_connect函数未开启_CRMEB打通版linux系统部署客服开启长链接不成功
- hdoj2046骨牌铺方格题解+拓展(递推/斐波那契)
- 复旦大学入学计算机考试大纲,《计算机办公自动化》课程入学考试考核大纲和样题-复旦大学外国留学生...
- Android文件的读写
- 梯形法则 matlab代码,matlab第二章常微分方程的数值解法
- 幼儿园数学目标_大班数学领域目标
- 阿里云服务器linux 启动网卡失败,提示does not seem to be present,delaying initialization
- layui 调整表格样式
- codeforces A. Statues
- Windows 缓冲区溢出与数据执行保护DEP
- 安卓DEVICE ID为何有15位和16位
热门文章
- python内置类属性_Python内置方法和属性应用:反射和单例(推荐)
- MySQL 5.7安装(linux)
- Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))
- 构建之法第二章读后感
- 1小时学会建站(二):购买及绑定域名
- 课堂练习之谁是水王(一)
- git push -u origin master 上传出错问题
- openssl生成https证书 (转)
- iReport工具的使用(三)
- windowsxp的自动更新关闭后怎么能不提示?