云数据库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. 创建新的备节点并完成数据同步。
    备节点异常 发现备节点不可用,创建新的备节点并完成数据同步,保障主备双副本架构的持续性。
    说明 由于主备节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。
  • Q:实例为读写分离版时,主备切换对只读节点的使用有影响吗?

    A:不影响。

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

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