ORACLE--12C--多租户体系架构概念

一,概念

  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 ; 查看状态

原文地址:https://www.cnblogs.com/kingle-study/p/10695830.html