云数据库Redis版支持节点健康状态监测,当监测到实例中的主节点不可用时,会自动触发主备切换,例如将主节点和从节点进行互换,保障实例的高可用性。除此之外,云数据库Redis还支持手动触发主备切换,可用于容灾演练或多可用区场景下的就近连接等需求。

触发原因

  • 手动触发

    您或者您授权的阿里云技术专家手动触发的主备切换。具体操作,请参见手动执行主备切换

  • 风险隐患触发

    阿里云检测到实例存在潜在风险,此类风险可能会在未来影响实例的正常使用。系统会自动下发主动运维任务来处理此类风险项,并在可维护时间段触发主备切换,替换掉存在风险的节点。紧急风险修复类事件通常会在第一时间修复并触发主备切换。

    您可以在历史事件中查询到此类触发方式的记录,更多信息请参见查询历史事件。您也可以管理待处理的主备切换事件,更多信息请参见查看并管理待处理事件

  • 实例故障触发

    阿里云检测到实例发生故障,无法正常使用时,系统会立即触发主备切换,及时恢复实例,降低故障影响时长。

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

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

切换影响

触发原因 影响
手动触发
  • 执行切换的数据节点将出现秒级的连接闪断,同时,为避免主备切换引起潜在的数据丢失风险(例如主备节点数据同步延迟引起数据不一致)、DNS缓存引起的数据双写,该数据节点还会出现30秒内的只读状态。
  • 实例处于切换中状态时,您将无法执行实例级别的操作(例如变更配置、迁移可用区等)。
风险隐患触发
实例故障触发
  • 执行切换的数据节点将出现秒级的连接闪断。
  • 实例处于切换中状态时,您将无法执行实例级别的操作(例如变更配置、迁移可用区等)。
说明 完成主备切换后,实例状态会显示为运行中

操作建议

  • 请提前为您的应用设计重连机制和异常处理的能力,否则业务应用可能在实例切换阶段产生间歇性的异常信息,例如:READONLY You can't write against a read only instanceDISABLE You can't write or read against a disable instance
  • 当实例触发主备切换后,实例会自动完成完整的切换流程,您无需进行任何操作。
    说明 双可用区实例在主备切换后,主节点位于备可用区、备节点位于主可用区,此时可能产生实例与其他业务跨机房访问的情况。如需解决上述问题,您可以手动切换可用区。

常见问题

  • Q:实例故障触发主备切换的原理是什么?
    A:依赖高可用HA(High Availability)系统的探活机制实现故障检测,具体如下:
    主要事件 说明
    健康检测 HA系统会探测确认主备节点健康状态。
    主节点异常
    1. 发现主节点不可用,会将备节点提升为主节点,同时将虚拟IP地址VIP(Virtual IP Address)切换至备节点,但不会变更实例连接地址。
    2. 创建新的备节点并完成数据同步。
    备节点异常 发现备节点不可用,HA系统将自动创建新的备节点并完成数据同步,保障主备双副本架构的持续性。
    说明 由于主备节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。
  • Q:实例为读写分离版时,主备切换对只读节点的使用有影响吗?

    A:不影响。

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

    A:不会影响整体实例,仅影响该数据分片,具体信息,请参见切换影响