一,概念

  1,何为多租户?

   官网链接: 飞机直达>>

  多租户这个概念并不是12C的新特性,而是体系架构,多租户架构使得oracle 数据库成为了一个多租户的容器数据库,也就是container database,也就是CDB。而一个CDB可以包含0个、一个或者多个用户创建的可插入的数据库,也就是pluggable database,也就是PDB,也就是所谓的“租户”。这就像合租房一样,每个租户可以获得其所需的各种资源。也可以说CDB就是各PDB的母体。

  2,多租户架构

一个CDB包括零个,一个或多个用户创建的可插拔数据库(PDBs)。PDB是模式、模式对象和非模式对象的可移植集合,在Oracle NET客户机看来,Oracle数据库12c之前的所有Oracle数据库都是非CDB。
    ORACLE  12C 是世界上第一款基于云计算设计的多租户数据库,底层为一个多租户的架构,支持云计算(共享软硬件资源,降低成本),等同于把多个数据块当成一个数据块来管理,即共享服务器,共享操作系统,共享数据块

  3,CDB容器

   容器是多租户体系结构中数据或元数据的逻辑集合。 

每个CDB都有以下容器:  

  01,只有一个CDB根容器(也称为根容器)    

    cdb根是所有pdb所属的模式、模式对象和非模式对象的集合。根存储Oracle提供的元数据和普通用户。元数据的一个例子是Oracle提供的PL/SQL包的源代码。公共用户是每个容器中已知的数据库用户。根容器名为cdb$root。

  02,只有一个系统容器

    系统容器包括根CDB和CDB中的所有PDB。因此,系统容器是CDB本身的逻辑容器。

  03,零个或多个应用程序容器

    应用程序容器仅由一个应用程序根组成,PDB插入到该根。虽然系统容器包含cdb根目录和cdb中的所有pdb,但是应用程序容器只包含插入到应用程序根目录中的pdb。应用程序根属于cdb根,没有其他容器。

  04,零个或多个用户创建的PDB

    PDB包含特定功能集所需的数据和代码。例如,PDB可以支持特定的应用程序,例如人力资源或销售应用程序。创建CDB时不存在PDB。您可以根据业务需求添加PDB。

    PDB正好属于零或一个应用程序容器。如果PDB属于应用程序容器,则它是应用程序PDB。例如,Cust1_PDB和Cust2_PDB应用程序PDB可能属于SaaS_Sales_AC应用程序容器,在这种情况下,它们不属于其他应用程序容器。应用程序种子是可选的应用程序PDB,充当用户创建的PDB模板,使您能够快速创建新的应用程序PDB。

  05,只有一个SEED pdb

    SEED PDB是由系统提供的模板,CDB可以使用它来创建新的PDB。SEED pdb被命名为pdb$seed。不能在pdb$seed中添加或修改对象。  

二, 多租户的优势

  1,使用多租户体系结构进行数据库整合优势:

    01 降低成本

        通过将硬件和数据库基础结构整合到一组后台进程,并高效地共享计算和内存资源,可以降低硬件和维护成本。例如,单个服务器上的100个PDB共享一个数据库实例。

    02 更容易、更快速地移动数据和代码

        通过设计,您可以快速地将PDB插入CDB,从CDB中拔下PDB,然后将此PDB插入不同的CDB。您还可以在PDB保持可用时克隆它们。您可以使用任何字符集插入PDB,并在不进行字符集转换的情况下访问它。如果cdb的字符集是cdb的字符集是al32utf8,那么同一cdb中可以存在具有不同数据库字符集的pdb。

    03 更容易管理和监控物理数据库

        CDB管理员可以通过为所有托管租户和CDB根执行单个操作(如修补或执行RMAN备份)将环境作为聚合进行管理。简化了备份策略和灾难恢复。

    04 数据和代码分离

        虽然PDB合并到一个物理数据库中,但它模拟了非CDB的行为。例如,如果用户错误丢失了关键数据,那么PDB管理员可以使用Oracle Flashback或时间点恢复来检索丢失的数据,而不会影响其他PDB。

    05 确保行政职责分离

      普通用户可以连接到其具有足够权限的任何容器,而本地用户仅限于特定的PDB。管理者可以按如下方式划分职责:
      管理员使用公用帐户管理CDB或应用程序容器。因为权限包含在授予它的容器中,所以一个PDB上的本地用户对同一个CDB中的其他PDB没有权限。
      管理员使用本地帐户管理单个PDB。

06 易于性能调整

      收集单个数据库的性能指标比收集多个数据库的性能指标更容易。一个SGA的尺寸比100个SGA的尺寸更容易。

    07 更少的数据库补丁和升级

      对一个数据库应用补丁比对100个数据库应用补丁更容易,对一个数据库进行升级也比对100个数据库进行升级更容易。

  2多租户架构对可管理性的好处

    01 更容易升级数据和代码

      例如,不需要将CDB从一个数据库版本升级到另一个数据库版本,您可以从现有CDB中快速拔出PDB,然后将其从更高版本插入到新创建的CDB中。

    02 更容易在服务器之间迁移

      要执行负载平衡或满足SLA,您可以将应用程序数据库从本地数据中心迁移到云,或者在同一环境中的两个服务器之间迁移。

    03 防止PDB中的数据损坏

      您可以将PDB闪存回特定于SCN或PDB的还原点,而不影响其他PDB。此功能类似于非CDB的闪回数据库功能。
      能够在单个位置安装、管理和升级特定于应用程序的数据和元数据
      您可以将一组特定于应用程序的PDB定义为单个组件,称为应用程序容器。然后可以在此容器中定义一个或多个应用程序。每个应用程序都是此应用程序容器中共享的一组命名的、版本控制的通用元数据和数据。
      例如,SaaS供应商的每个客户都可以拥有自己的应用程序PDB。每个应用程序PDB可能都有相同定义的表,名为sales-mlt,每个PDB中有不同的数据。PDB可以共享一个名为“国家”的数据链接公共对象,每个PDB中都有相同的数据。作为应用程序管理员,您可以管理主应用程序定义,以便每个新客户都获得具有相同对象的PDB,并且对现有模式的每个更改(例如,添加新表或更改表的定义)都适用于共享应用程序定义的所有PDB。

    04 与Oracle数据库资源管理器集成

      在多租户环境中,一个问题是运行在同一服务器上的PDB之间的系统资源争用。另一个问题是限制资源使用以获得更一致、可预测的性能。要解决此类资源争用、使用和监视问题,请使用Oracle数据库资源管理器。

三,查看

  1,查看管理用户是否是CDB

飞机直达如何创建CDB >>

SQL> SELECT NAME, CDB, CON_ID FROM V$DATABASE;

select name ,open_mode from v$pdbs ; 查看状态

 
 
 
 
 
 
 
 
 

最新文章

  1. Beta阶段第八次Scrum Meeting
  2. 通过nsenter连接docker容器
  3. sql for xml 嵌套
  4. AMD规范:define和require的区别
  5. OAF_架构MVC系列2 - Model的概述(概念)
  6. poj 2449 Remmarguts' Date K短路+A*
  7. (转)python 优先队列
  8. U大师装系统
  9. NOIP2011 铺地毯
  10. C语言递归分析
  11. liunx命令2
  12. 那些年,曾踩过的Spark坑
  13. Flutter 中 JSON 解析
  14. Python-Mongodb vs mysql
  15. db2 runstats和reorg
  16. 类Exception_A继承Exception,类Exception_B继承Exception_A,请问执行此段代码的输出是什么?
  17. link 和@import 的区别
  18. day 46 html 学习 列 表格,
  19. AMQP & JMS对比(转载)
  20. VMware Workstation 11 中 Ubuntu 14.04 的 VMware Tools 问题 :没有显示共享文件夹

热门文章

  1. razor自定义函数 @helper 和@functions小结
  2. HDU 1540 Tunnel Warfare (线段树或set水过)
  3. 希尔伯特空间(Hilbert Space)是什么?
  4. 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable
  5. ApplicationContex是干啥的
  6. 国外物联网平台(5):Exosite Murano
  7. Hexo基本使用
  8. WinForm中ListView的使用
  9. windows下go调用内存dll
  10. ecliplse启动慢的优化方法(亲测有效)