在 Oracle 18c 中,多租户的一个新特性 CDB Fleet 被引入进来,我们可以把这个特性称为:多租户舰队。
我们知道,在 Oracle 12.2 中,每个多租户可以最多支持 4096 个 PDB,这是从12.1 的 252个 PDB 支持升级而来的,主要特性如下图所示:
Oracle Database 18c 引入了CDB Fleet功能,可以帮助我们将多个 CDB 的 PDB 聚合管理,仿佛是一个逻辑的 CDB 一样。
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中打开。
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 的数据库链接的名称;
● 在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的信息和状态。
原文发布时间为:2018-10-30
本文作者:盖国强