Redis HA主备切换

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

为什么会触发主备切换?

  • 实例底层主机故障
    • 阿里云检测到实例底层主机发生故障,例如进程异常中断、实例负载过高导致内存异常等无法正常使用时,系统会立即触发主备切换,及时恢复实例,降低故障影响时长。
      此类触发方式会以短信或站内信、邮件等形式通知到您,通知示例如下:
      【阿里云】尊敬的****:您的云数据库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
  • 当实例触发主备切换后,实例会自动完成完整的切换流程:将备节点提升为主节点,同时会创建新的备节点,进行主备节点数据同步。您无需进行任何操作。
    • 说明
      双可用区实例在主备切换后,主节点位于备可用区、备节点位于主可用区,此时可能产生实例与其他业务跨机房访问的情况。如需解决该问题,您可以在控制台服务可用性页面手动切换可用区。

相关文档

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

常见问题

  • Q:实例故障触发主备切换的原理是什么?
    • A:依赖高可用HA(High Availability)系统的探活机制实现故障检测,具体如下:
      主要事件
      说明
      健康检测
      HA系统会探测确认主备节点健康状态。
      主节点异常
      1. 发现主节点不可用,会将备节点提升为主节点,同时将虚拟IP地址VIP(Virtual IP Address)切换至备节点,但不会变更实例连接地址。 2. 创建新的备节点并完成数据同步。
      备节点异常
      发现备节点不可用,HA系统将自动创建新的备节点并完成数据同步,保障主备双副本架构的持续性。
      说明
      由于主备节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。
  • Q:实例为读写分离版时,主备切换对只读节点的使用有影响吗?
    • A:在切换过程中,只读节点的数据会临时减少1个,在切换完成后恢复正常。
  • Q:实例为集群版-双副本时,切换某个数据分片中的主备节点对实例整体有什么影响?
    • A:不会影响整体实例,仅影响该数据分片。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP