首先,我们先明确地域(region)和可用区(zone)概念,云数据库托管机房分布在全球多个位置,这些位置都由地域和可用区构成。每个地域都是一个独立的地理区域。而每个地域内都有一组电力和网络互相独立的物理数据中心,这个称为可用区。一个可用区出现故障,是不会影响另一个可用区,即可用区间故障相互隔离,不出现故障扩散。同一地域下的可用区通过低时延的内网链路相连。通常会建议用户在设计系统时考虑将资源放置在不同可用区以屏蔽单个可用区故障导致的服务不可用状态,所以多可用区部署可帮助保护数据库以防止可用区故障导致数据库不可访问。 这里要明确的是,无论数据库集群中的实例是否跨多个可用区,每个云数据库 MySQL 高可用版的架构都有实时热备的备机提供数据库的高可用,比如地域选择为华东,可用区为上海三区,数据复制方式为强同步模式,一主两备组成集群,主备都在同一个可用区。

重点来了,云数据库MySQL支持跨可用区部署,主库和备库分处于同城不同可用区,通过腾讯专线网络进行实时的数据复制。跨可用区部署特性为云数据库 MySQL 提供了多可用区容灾的能力,主机和备机切换过程对用户透明, 如果出现主数据库实例故障或可用区中断,主数据库实例会自动切换到备用副本,这避免了单 IDC 部署的运营风险。

选择“多可用区域”,主库在上海一区,两个备库在上海二区,注意主备库分处不同可用区,可能会增加2~3ms的同步网络延迟。本地为主机,远程为备机,外部访问该数据时,首先访问本地的实例,若主库发生故障或访问不可达,则访问备库。 跨可用区部署的实例整体架构图,如下图所示。