编辑手记:Oracle Sharding是从12c推出的通过分区技术实现的一种数据库架构,在12.2中这项技术也越来越成熟。release 2中新特性包含:分片的自动部署,智能路由和全生命周期管理等,同时,通过与DG技术的集成,将实现分片级别的高可用。
推荐阅读:
Oracle 12.2新特性掌上手册 - 第四卷 Sharding 的增强
Oracle Sharding与Oracle数据库复制技术(Data Guard)集成,可在碎片级别实现高可用性和灾难恢复。
Oracle Sharding与Oracle Data Guard紧密集成。 Data Guard复制维护一个或多个分片(主要)的同步副本(standbys),以实现高可用性和数据保护。Standbys可以在本地或远程部署,并且在使用Oracle Active Data Guard时也可以打开只读访问。
1、关于分片和复制
Oracle Sharding与Oracle Data Guard紧密集成。复制技术为读取提供高可用性,灾难恢复和增强的可扩展性。
分片数据库(SDB)中的复制拓扑使用GDSCTL命令语法声明性地指定。 Oracle Sharding自动部署指定的复制拓扑并启用数据复制。
SDB的可用性不受一个或多个分片的中断或性能影响。 复制技术用于提供单独的分片级高可用性(Oracle Active Data Guard)。 创建SDB时,会自动配置和部署复制。 或者也可以使用Oracle RAC进行碎片级高可用性(由复制补充),以在集群中断的情况下维护分片级数据可用性。 如果出现计划外中断,Oracle Sharding会自动从分片到其副本的数据库连接失败。
2、Oracle Data Guard与SDB集成的实现
Oracle Data Guard复制维护一个或多个分片(主要)的同步副本(standbys),以实现高可用性和数据保护。 Standbys可以在本地或远程部署,并且在使用Oracle Active Data Guard时也可以打开只读访问。
Oracle Data Guard可以用作SDB的复制技术,使用系统管理的或复合的分片方法。
将Oracle Data Guard与系统管理的SDB配合使用
在系统管理和复合分片中,逻辑复制单元是称为分片组的一组分片。在系统管理的分片中,分片包含存储在SDB中的所有数据。数据通过构成分片组的碎片之间的一致哈希进行分片。属于分片组的碎片通常位于同一个数据中心。整个分组可以完全复制到相同或不同数据中心中的一个或多个分组。
下图说明了Data Guard复制如何与系统管理的分片一起使用。在图中的示例中,有一个主分片组,Shardgroup 1和两个备用分片组,Shardgroup 2和Shardgroup 3. Shardgroup 1由Data Guard主数据库(分片1-3)组成。 Shardgroup 2由位于同一数据中心并配置为同步复制的本地备用数据库(分片4-6)组成。 Shardgroup 3由位于不同数据中心的远程Standbys(分片7-9)组成,并配置为异步复制。在此配置中启用Oracle Active Data Guard,因此每个待机都是只读的。
shardgroup以逻辑复制单元呈现,其实现细节对于用户是透明的。 使用Data Guard,在分片(数据库)级别进行复制。 上图中的SDB由三组复制的分片组成:{1,4,7},{2,5,8}和{3,6,9}。 每组复制的分片都作为启用快速启动故障切换(FSFO)的Data Guard Broker配置进行管理。
要部署复制,需要指定shardgroups(region,role等)的属性,并将碎片添加进去。 Oracle Sharding自动配置Data Guard并为每组复制的分片启动FSFO观察器。 它还提供只读工作负载,基于角色的全局服务和复制滞后以及基于位置的路由的负载平衡。
运行以下GDSCTL命令来部署上图所示的示例配置。
使用Oracle Data Guard与复合SDB
在复合分片中,SDB由多个分片组成。 但是,每个shardspace,而不是复制的碎片,包含复制的碎片组。
运行以下GDSCTL命令部署上图所示的示例配置。