You need to enable JavaScript to run this app.
导航

主从切换

最近更新时间2023.09.22 11:08:36

首次发布时间2021.11.04 14:15:17

缓存数据库 Redis 版提供主从切换功能。当检测到实例发生故障时,系统会立即触发主从切换,及时恢复实例正常运行,保障实例的高可用。除此之外,Redis 还支持手动触发主从切换,满足容灾演练或多可用区场景下就近连接等需求。

前提条件

实例类型为主备实例。单节点实例不支持主从切换功能。关于两种类型实例的功能特性差异详情,请参见功能特性差异

触发原因

  • 手动触发
    当需要进行容灾演练或多可用区场景下就近连接时,您可以手动触发主从切换。具体操作步骤,请参见手动执行主从切换

  • 故障切换
    缓存数据库 Redis 版采用了基于高可用 HA(High Availability)系统的探活机制进行故障检测。HA 系统会通过健康检测来确认主从节点的健康状态。实例会根据故障级别采取不同的机制进行节点切换,确保实例尽快恢复服务。不同故障级别及响应机制说明如下表。

    故障级别故障响应机制

    仅主节点故障

    当只有主节点出现故障时:

    1. 系统自动将同步延迟时间最短的从节点提升为主节点。
    2. 创建一个新节点用于替换故障节点,并和新的主节点完成数据同步。

    说明

    • 主节点切换后,无需修改客户端的连接地址代码。
    • 由于主从节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。

    主节点和部分从节点故障

    当主节点和部分从节点出现故障时:

    1. 系统自动将同步延迟时间最短的从节点提升为主节点。
    2. 创建对应数量的新节点,并和新的主节点完成数据同步。

    说明

    • 主节点切换后,无需修改客户端的连接地址代码。
    • 由于主从节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。

    主节点和所有从节点都故障

    当实例中所有节点都出现故障时:

    1. 系统自动创建与原实例相同数量的主节点和从节点。
    2. 新的主从节点会替换掉对应角色的故障节点,替换完成后,所有节点会被冷启动。

    说明

    • 当所有节点发生故障时,还没来得及写入云盘中的数据会丢失。
    • 节点恢复后,无需修改客户端的连接地址代码。

切换影响及建议

  • 切换影响
    • 正在切换的节点将出现秒级的连接闪断。
    • 正在切换的节点会出现短暂的(30 秒内)不可写时间,以避免主从切换引起潜在的数据丢失风险和 DNS 缓存引起的数据双写情况。
  • 建议
    应用需具备自动重连机制,以及处理异常的能力,否则在实例执行主从切换过程中,应用将提示异常信息,例如 READONLY You can't write against a read only replica