DB 组件(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:www.cungun.comROOT 的全局数据库名就是 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 的独立和平安。