主备切换

云数据库Tair(兼容 Redis)监测到实例的主节点不可用时,会自动触发主备切换,将备节点提升为主节点,保障实例的高可用性。若您收到短信、邮件、控制台站内信等通知,告知您实例已完成主备切换,您可以参考本文了解主备切换的原因、影响和处理建议等。

为什么会触发主备切换?

  • 实例底层主机故障

    阿里云检测到实例底层主机发生故障,例如进程异常中断、实例负载过高导致内存异常等无法正常使用时,系统会立即触发主备切换,及时恢复实例,降低故障影响时长。

    此类触发方式会以短信或站内信、邮件等形式通知到您,通知示例如下:

    【阿里云】尊敬的****:您的云数据库Tair(兼容 Redis)实例:r-bp1zxszhcgatnx****(名称:****)出现异常,高可用系统已经触发切换,确保实例稳定运行。请检查程序连接是否正常,建议设置自动重连机制以避免切换影响。

  • 实例底层主机存在风险隐患

    阿里云检测到实例底层主机存在风险时,例如网络抖动异常、磁盘异常等风险时,且此类风险可能会在未来影响实例的正常使用。系统会自动下发主动运维任务来处理此类风险项,并在可维护时间段触发主备切换,替换掉存在风险的主机节点。

    但紧急风险修复类事件通常会在第一时间修复并触发主备切换,例如发现了Redis社区的严重Bug,实例会主动进行小版本升级。您可以在历史事件中查询到此类触发方式的记录,更多信息请参见查询历史事件。您也可以管理待处理的主备切换事件,更多信息请参见查看并管理计划内事件

是否会影响使用?

实例会自动完成完整的切换流程,在切换完成后,实例将正常运行。

但在切换过程中,会出现以下情况:

  • 执行切换的数据节点将出现秒级的连接闪断,可能还会出现30秒内的只读状态。

  • 在实例处于切换中状态时,将无法执行实例级别的操作(例如变更配置、迁移可用区等)。当实例完成主备切换后,实例状态会显示为运行中

操作建议

  • 请提前为您的应用设计重连机制和异常处理的能力,否则业务应用可能在实例切换阶段产生间歇性的异常信息,例如:READONLY You can't write against a read only instanceDISABLE You can't write or read against a disable instance

  • 当实例触发主备切换后,实例会自动完成完整的切换流程:将备节点提升为主节点,同时会创建新的备节点,进行主备节点数据同步。您无需进行任何操作。

    说明

    双可用区实例在主备切换后,主节点位于备可用区、备节点位于主可用区,此时可能产生实例与其他业务跨机房访问的情况。如需解决该问题,您可以在控制台服务可用性页面手动切换可用区。

相关文档

云数据库Tair(兼容 Redis)也支持手动触发主备切换,可用于容灾演练或多可用区场景下的就近连接等需求,更多信息请参见手动执行主备切换

常见问题

  • Q:实例故障触发主备切换的原理是什么?

    A:依赖高可用HA(High Availability)系统的探活机制实现故障检测,具体如下:

    主要事件

    说明

    健康检测

    HA系统会探测确认主备节点健康状态。

    主节点异常

    1. 发现主节点不可用,会将备节点提升为主节点,同时将虚拟IP地址VIP(Virtual IP Address)切换至备节点,但不会变更实例连接地址。

    2. 创建新的备节点并完成数据同步。

    备节点异常

    发现备节点不可用,HA系统将自动创建新的备节点并完成数据同步,保障主备双副本架构的持续性。

    说明

    由于主备节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。

  • Q:实例为读写分离版时,主备切换对只读节点的使用有影响吗?

    A:在切换过程中,只读节点的数据会临时减少1个,在切换完成后恢复正常。

  • Q:实例为集群版-双副本时,切换某个数据分片中的主备节点对实例整体有什么影响?

    A:不会影响整体实例,仅影响该数据分片。