#容灾机制
# 容灾部署方案
# 主备部署
YashanDB支持主备模式的高可用部署架构,允许一主一备或一主多备。
单机主备高可用部署
主备库部署在不同的服务器上,多台服务器一般应连接到同一交换机,确保网络低时延,并应考虑交换机的冗余配置,保证高可用避免单点故障。
根据主备复制方式的不同,备库又可分为物理备库和逻辑备库。
主备集群高可用部署
主库被扩展为主集群的概念,主集群中多实例同时提供在线数据库服务,均为读写模式。
备库被扩展为备集群的概念,每个备集群中的1号实例进行日志接收和回放。
存算一体分布式高可用部署
在存算一体分布式集群部署中,CN节点天然就是多活部署无主备概念,高可用部署只针对MN组和DN组。
CN多活部署:多个CN节点,每个CN节点相互独立,支持负载均衡。
MN主备部署:一个主节点 + 多个备节点,可配置自动选主(至少1主2备构建Raft集群)。
DN主备部署:
一主一备:可配置yasom仲裁选主。
一主多备:可配置自动选主(至少1主2备构建Raft集群)。
# 级联备部署
级联备,即备库的备库,是异步备库,从其上级备库接收日志并回放,可以减少主库上的带宽负载,通常用于异地容灾中。
一个备库最多可连接32个级联备,级联备可以继续向下连接级联备,没有层数限制,但不可以成环连接。
当上级备库升为主库后,级联备转为普通备库;当主库变成备库后,它的备库变成级联备。
共享集群部署和存算一体分布式集群部署中无级联备。

# 双复制组主备部署
在单机部署的双复制组主备部署中划分了主复制组和备复制组,每个组可对应部署在不同的地域/机房,从而构成异地容灾架构。
主复制组中可以进一步构建节点级别的主备关系,而备复制组中则默认首个节点为备库、其他节点均为级联备。
仅主复制组中的节点才会参与自动选主或yasom仲裁选主的选举流程,需根据主复制组中的节点数选择合适的自动选主机制。
# 主备切换
主备切换是指主备库角色切换的过程,主库降为备库,备库升为主库。YashanDB支持手动切换主备库和特定场景下无需外部干预的自动选主。
# 手动切换
一般分为计划内切换(Switchover)和故障切换(Failover)。
Switchover表示计划内的切换,在主备库同步正常的场景下,将主备角色互换。一般应用于数据库运维,例如滚动升级,或维护服务器。
Failover表示故障切换,在主库数据库损坏或由于系统损坏导致主库不可用的情况下,选择一个备库转换为新主库,以便恢复业务。一般用于主库故障后,快速恢复业务。
# 自动选主
根据不同的部署形态,YashanDB实现了不同机制的自动选主,包括主备自动选主和yasom仲裁选主,降低运维复杂度。当主库发生异常不能对外服务时,系统根据相应的机制在备库中选出新的主库并自动执行主备切换。
自动选主:在单机一主多备(非级联备)、分布式集群节点组一主多备部署形态下,当主库节点发生异常不能对外服务时候,系统采用Raft一致性算法中的选举算法在多个备库节点间选举一个节点提升为主库,其余节点依然为备库,旧的主库降级为备库。
yasom仲裁选主:在单机一主一备、分布式集群节点组一主一备部署形态下,当主库发生异常不能对外服务时,系统通过yasom仲裁将备库升为主库,并将原主库降为备库。

