12c Pluggable Database Container Database可插拔数据库特性专题-阿里云开发者社区

开发者社区> 科技小能手> 正文

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#

本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/p2

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Security笔记:使用数据库进行用户认证(form login using database)
在前一节,学习了如何自定义登录页,但是用户名、密码仍然是配置在xml中的,这样显然太非主流,本节将学习如何把用户名/密码/角色存储在db中,通过db来实现用户认证 一、项目结构 与前面的示例相比,因为要连接db,所以多出了一个spring-database.
876 0
Spring+Ibatis数据库水平分库
1.引言    笔者最近在做一个互联网的“类SNS”应用,应用中用户数量巨大(约4000万)左右,因此,简单的使用传统单一数据库存储肯定是不行的。
621 0
SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)
原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:游...
1298 0
.NET数据库编程求索之路--4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(3)
4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(3)   作者:夏春涛 xchunta@163.com 转载请注明来源: http://www.cnblogs.com/SummerRain/archive/2012/07/25/2609144.
868 0
C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高.  包装了一个简单的sqlbulkcopy类,用于数据从datatable导入到sqlserver.
2368 0
SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)
原文:SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems)...
1218 0
MyBatis Generator(MBG)数据库特定信息
使用说明本节收集不同数据库的使用信息。DB2MySQLOraclePostgreSQL请告知我们您正在使用的数据库发现的任何怪癖 - 我们很乐意将信息添加到此部分以备将来参考。原文:Database Specific Information 相关阅读: MyBatis Generator (MB...
630 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载