12c Pluggable Database Container Database可插拔数据库特性专题

Oracle Database 12c中带来一种全新的架构,容许用户在一个独立的Oracle数据库中拥有多个pluggable可拔插的数据库。这种Pluggable 可拔插数据库的出现是为了对应 用户目前使用RDBMS数据库的现状,即有一些用户拥有大量的部门级应用构建于Oracle RDBMS数据库之上。  

如下几个场景适合于使用pluggable database:

  1. 在产品系统中的某些应用实际仅使用十分少许的硬件资源。可是若是存在大量这样的应用,则仍是须要构造大量的数据库实例并为这些小规模的数据库分配存储空间
  2. 对于那些并不十分复杂或重要,须要全职DBA花费大量时间管理的数据库
  3. 为了更好地利用硬件和DBA资源,用户有必要将大量的部门级应用整合到少数几个oracle RDBMS数据库中以便部署和管理
    Pluggable Database 可拔插数据库容许DBA整合大量的小的部门级数据库到一个更庞大的数据库中。  

Pluggable Database 带来的好处

  在一个集中化的平台上操做多个数据库将有效下降成本:
  1. 更少的实例损耗
  2. 更低的存储成本
  减小对DBA资源的使用,以及便于维护安全性:
  • 无需应用修改
  • 更快和简便的配置
  • 节省了打patch和升级的时间
  • 分离了如下责任:
    • 不一样应用的管理员
    • 应用程序管理员和DBA
    • 应用用户
  • 提供isolation
  • 保证与非CDB 完整的向后兼容性
  • 完整的RAC操做使用
  • 与Oracle Enterprise Manager和Resource Manager整合在一块儿
  • 能够集中化管理多个数据库
    • 备份和灾难恢复
    • 补丁和升级
    cdb1     上图给出了一个Container Database 并带有4个Containers, ROOT(CDB$ROOT)和其余的三个pluggable Database。每个Pluggable Database均拥有本身的独立应用程序,这些Pluggable Database要么有本身的DBA, 要么被Container Administrator即SYS用户管理;SYS用户属于root(CDB$ROOT) Container 是一个common user。 SYS用户仍是像以前的版本那样权威,他能够管理root container 和其余全部的pluggable database。   一个Pluggable Database可拔插数据库是 一堆database schemas数据库模式的集合以一个分离的数据库逻辑形象呈现给用户和应用程序。可是在物理级别,Container database拥有一个数据库实例以及多个数据文件,和普通的非CDB是同样的。 无论是客户端程序仍是数据库对象均无需修改,以适应CDB。 用户将很方便地将一个非CDB 插入到一个CDB中, CDB避免了如下的冗余:
  • 后台进程
  • 内存分配
  • 多分数据字典源数据
  一个CDB将多个应用合并到单一的一个实例中, 这致使 仅使用 一套后台进程,一份SGA内存分配和root container中的一份数据字典。固然PDB还将在本身的数据字典中维护部分数据。   cdb2   关于CDB 数据字典实际状况的测试:   经过下面的实验咱们能够得出以下结论:
  1. 每个Container 维护本身的一套底层数据字典 数据实际存放在C_OBJ#(C_OBJ#
相关文章
相关标签/搜索