Oracle 18c新特性:多租户舰队 CDB Fleet


Oracle 18c新特性:多租户舰队 CDB Fleet


在 Oracle 18c 中,多租户的一个新特性 CDB Fleet 被引入进来,我们可以把这个特性称为:多租户舰队。(关注本公众号: Oranews 回复 2018OOW 可以在 “CDB Fleet” 目录找到这个 118 页的 PPT)我们知道,在 Oracle 12.2 中,每个多租户可以最多支持 4096 个 PDB,这是从12

在 Oracle 18c 中,多租户的一个新特性        CDB Fleet        被引入进来,我们可以把这个特性称为:   多租户舰队   。


我们知道,在 Oracle 12.2 中,每个多租户可以最多支持 4096 个 PDB,这是从12.1 的 252个 PDB 支持升级而来的,主要特性如下图所示:

Oracle 18c新特性:多租户舰队 CDB Fleet


Oracle Database 18c 引入了CDB Fleet功能,可以帮助我们   将多个 CDB 的 PDB 聚合管理,仿佛是一个逻辑的 CDB 一样   。 

Oracle 18c新特性:多租户舰队 CDB Fleet


CDB Fleet旨在提供更高的可扩展性和为多CDB的集中管理提供底层基础架构, 主要的特性如下:

  • 单个 CDB 中的最大PDB数是4096个,CDB舰队则可以逻辑上容纳超过4096个PDB。

  • 单个配置中的不同PDB需要不同的服务类型才能以最佳方式运行,例如,一些PDB可能用于处理大的事务负载,而其他PDB主要用于监控。 通常需要区别配置适用于这些PDB的服务器资源,例如CPU,内存,I / O速率和存储系统。

  • 每个CDB都可以使用所有常用的数据库功能来实现 CDB 中 PDB 的高可用性,可伸缩性和恢复,例如Real Application Clusters(RAC),Data Guard,RMAN,PITR和Flashback。

  • PDB名称在舰队中的所有CDB中必须是唯一的。 PDB可以在舰队中的任何CDB中创建,但只能在物理存在的CDB中打开。


Oracle 18c新特性:多租户舰队 CDB Fleet


CDB舰队包含两个角色:   CDB领队(CDB Lead) 和 CDB成员(CDB Member)   。来自各个CDB的PDB信息与CDB Lead同步。

配置 CDB Lead 需要从CDB root 开始,CDB Lead 能够:

  • 监控舰队中所有CDB的所有PDB;

  • 通过跨容器查询报告信息,并从舰队中所有CDB的所有PDB收集诊断信息

  • 从 Fleet 中所有CDB的所有PDB查询Oracle对象

要配置CDB舰队,需要首先定义 Lead 然后定义 Member:

  • 要将CDB定义为CDB Fleet 中的CDB Lead,需要从CDB root将LEAD_CDB数据库属性设置为TRUE。

  • 在CDB Lead的CDB root 中,使用一个 common 用户并授予适当的权限。

  • 假定网络已配置正常,当前CDB可以使用DB Link中定义的连接描述符连接到CDB Lead,以下步骤将其他CDB定义为CDB Fleet的成员:

    • 连接到另一个 CDB 的 CDB Root;

    • 使用与 CDB Lead 中使用的常规用户相同的常规用户,因为我们必须使用固定用户创建公共数据库链接;

    • 将LEAD_CDB_URI数据库属性设置为指向CDB Lead 的数据库链接的名称;

Oracle 18c新特性:多租户舰队 CDB Fleet

  • CDB舰队中的CDB Lead可以监控CDB Fleet中CDB的PDB。你可以在一个容器中安装监视应用程序,并使用CDB视图和GV $视图来监视和处理整个CDB Fleet 的诊断数据。在 CDB Lead 中发出的跨容器查询可以通过Oracle提供的对象在CDB Fleet 中的所有PDB中自动执行。

  • 在CDB Fleet中的不同PDB(或应用程序PDB)中使用Oracle提供的甚至是通用应用程序模式对象,您可以使用CONTAINERS子句或CONTAINER_MAP在Fleet中的多个CDB的所有PDB上运行查询。这使得来自Fleet中不同CDB中的PDB的数据聚合成为可能。应用程序可以安装在    Application root    中,并且 Fleet 中的每个CDB都可以具有    Application root    克隆,以启用跨CDB的通用应用程序架构。

  • CDB Lead 可以作为一个中心位置,您可以在其中查看有关多个CDB的所有PDB的信息和状态。


Oracle 18c新特性:多租户舰队 CDB Fleet




给用户介绍Oracle多租户新特性时,多次忍不住将CDB比喻为航母,PDB则是停靠之上的舰载机。没想到18c竟然出了航母战斗群,^_^


18c中引入了CDB fleet新特性,能够实现以下的功能:


扩容PDB支持数量,单个CDB最大能够支持4096个PDB,CDB fleet大大扩展了这一数量;

多CDB数据库的集中管理,降低管理成本;

CDB fleet支持所有的数据库功能,如Oracle RAC,RMAN,基于时间点的恢复,Flashback等。

 


CDB fleet中有两个概念:CDBLead和CDB members。


在CDB Lead中能够进行所有CDB的管理,设置完成后,fleet中所有的PDB都对CDBLead可见,在Lead中可以使用以下方式获取全局信息,实现全局管理:


CDB和GV$视图

CONTAINERS字句以及CONTAINER_MAP

CDB Members则通过DBLink和CDB Lead进行通讯。


 


 简单记录配置过程:


CDB Lead


 1. 设置LEAD_CDB


ALTER SESSION SET CONTAINER = CDB$ROOT;

 

ALTER DATABASE SET LEAD_CDB = TRUE;

 

 

 

SELECT PROPERTY_VALUE FROM  DATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB';

 

 PROPERTY_VALUE

----------------------

TRUE


2. 创建用于CDB Member连接的用户


create user c##cf1 identified by oracle;

 

grant dba to c##cf1;

 


CDB member


 1. 配置连接串


lead_pod =

 

 (DESCRIPTION =

 

   (ADDRESS_LIST =

 

     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.19)(PORT = 1521))

 

    )

 

   (CONNECT_DATA =

 

     (SERVICE_NAME = ora18c)

 

    )

 

  )


 2. 创建连接CDB Lead的DB LINK


CREATE PUBLIC DATABASE LINK lead_link

 

  CONNECT TO C##CF1 IDENTIFIED BY oracle

 

  USING 'lead_pod';


 3. 设置LEAD_CDB_URI属性


ALTER DATABASE SET LEAD_CDB_URI ='dblink:LEAD_LINK';

 

SELECT PROPERTY_VALUE FROMDATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB_URI';

 

 PROPERTY_VALUE

--------------------------------------------------------------------------------

dblink:LEAD_LINK



CDB Lead


1. CDB Lead中确认CDB Member信息


SQL> select pdb_name, status from cdb_pdbs;

 

 

 

PDB_NAME                                                            STATUS

 

------------------------------------------------------------------------------------------------------------------------------------------

 

PDB$SEED                                                            NORMAL

 

orclcdb                                                              STUB

 

PDB1                                                                NEW

 

PDB2                                                                STUB


 PS: 状态为STUB的PDB信息来自于CDB Member.


上一篇:(三)箭头函数


下一篇:SPLAY,LCT学习笔记(一)