场景目标
完成 Redis 主副本与至少三个独立故障域 Sentinel 的拓扑核对,验证多数授权、客户端发现和持久化恢复记录;在受控测试范围完成一次主节点不可用演练,报告实际客户端恢复时间、测试写入缺口与重试结果,并验证旧主按新主副本身份恢复冗余。
数据库与存储 · 高级
从主从数据基线、Sentinel 多数授权到客户端发现和故障演练,明确异步复制与新主接写后的恢复边界。
完成 Redis 主副本与至少三个独立故障域 Sentinel 的拓扑核对,验证多数授权、客户端发现和持久化恢复记录;在受控测试范围完成一次主节点不可用演练,报告实际客户端恢复时间、测试写入缺口与重试结果,并验证旧主按新主副本身份恢复冗余。
使用已确认受支持的 Redis 与 Sentinel 配套版本,示例为现代 Redis 的 ROLE、INFO 和 SENTINEL 命令,ACL、TLS 及客户端行为按实际版本核对。准备至少一主一副本及三个分布在独立故障域的 Sentinel,确认实例地址能被 Sentinel 与客户端真实访问,NAT 和容器映射需单独验证。需要最小监测权限、受控管理身份、支持 Sentinel 的客户端和测试业务键空间;预留复制缓冲、持久化、全量同步及写时复制所需内存与磁盘。保存配置和已验证的备份恢复记录,窗口内具备暂停业务写入与隔离旧主的能力。预计 300 分钟覆盖首批接入和一次演练,不含采购、全量重同步、完整备份恢复与长周期负载观察。
客户端向 Sentinel 查询当前主节点后直接访问 Redis,数据通过主副本复制传递;下线判定、故障转移授权和旧主写入约束需要分别验证。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
配置多个 Sentinel 地址与准确的主节点名称,发现后的数据地址必须可达;对超时写入需要幂等或业务核对。
Sentinel 返回当前主节点地址;它不是转发业务命令的数据代理。
客户端使用发现结果直接连接 Redis,角色变化后需要刷新旧连接池。
数据从当前主节点复制到副本 A,已确认写入仍可能尚未送达。
数据复制到副本 B;副本数量增加不自动形成强一致提交多数。
Sentinel 监测数据节点并交换视图,客观下线和多数授权是不同条件。
只有具备故障转移授权和合格候选时才执行提升;此边不表示当前副本已经成为主节点。
故障转移时防止旧主在隔离分区继续承接业务,需要实际验证所有写入口。
通过适配指标端点观察多数可达性和角色事件,不把采集失联等同于完成选主。
查看切换相关指标,并与 Sentinel 原始事件和客户端记录对照。
quorum 认定下线,多数授权允许故障转移;两者都不能保证每笔已确认写入已在被提升副本上保存。
网络分区中的旧客户端可能继续使用旧连接,需单独落实写入约束及业务重试策略,不能宣称 Sentinel 天然避免一切双写。
旧主回归时先保留分歧证据,按新主重同步;不能用旧 RDB/AOF 覆盖新主或为还原机器角色直接切回。
适用于非 Redis Cluster 的单主多副本环境,由分布在独立故障域的 Sentinel 实例监测并协调故障转移。客户端通过 Sentinel 名称和地址发现当前主节点,Prometheus 与 Grafana 观察复制、持久化、容量和切换事件。
Sentinel 不提供分片,也不把异步复制变为强一致系统。quorum 用于认定客观下线,执行故障转移还需要获得 Sentinel 多数授权;三实例通常采用 quorum=2,但仍需按实际故障域和多数可达性验证。已确认写入也可能尚未到达副本,不能承诺零丢失。
所有 Sentinel 对目标名称与可达拓扑的视图一致,客户端可发现新主并按业务语义重连;演练保存发现、授权、提升、重配置和应用恢复时间。新主一旦接收写入即保持其权威,旧主先隔离再作为新主副本恢复,任何不一致都有明确的数据核对与处置记录。
核对当前主节点、所有副本、业务用途和直连客户端,记录复制偏移、链路状态、数据规模、内存余量及持久化结果,明确数据来自持久业务还是可重建缓存。以下命令在已通过受控认证连接的 redis-cli 会话中只读执行,分别保存每台实例的地址和角色;不在命令行明文传递密码,不使用生产全量键扫描建立基线。
ROLE
INFO replication
INFO persistence实例角色与资产清单一致,副本链路和持久化状态可解释,备份记录包含实际恢复与抽样校验;已列出所有应用连接方式。复制偏移与采样时间一起记录,不把某次接近作为永久无损保证。
此步骤不更改角色或配置,若发现未知主节点、持久化错误或数据来源不清,停止后续切换准备。保存只读证据并确认当前权威,先处理复制和恢复问题再接入 Sentinel。
把 Sentinel 和 Redis 节点映射到实际主机、机架或可用区,计算失去一个故障域后能否维持多数 Sentinel 可达。区分 quorum 的下线判定与多数授权,统一主节点名称和可达地址,排查 NAT、端口映射及 DNS 差异。结合业务数据语义评估异步复制风险、客户端超时重试和旧主隔离手段,若采用副本数量限制写入等策略,先验证对可用性的影响。
故障域图与实际部署一致,单域故障后多数授权条件有明确结论;应用和 Sentinel 能访问广告地址。业务方确认潜在数据缺口和重复请求处理方式,旧主所有写入口均有可执行的隔离方法。
多数可达性或地址条件不满足时暂缓启用故障转移,保留现有受控主副本并先调整部署。此阶段不主动隔离主节点;未完成风险和客户端确认前,不用强制故障转移验证猜测。
按固定目标名称逐个配置 Sentinel,核对认证、TLS、监测参数、判定时间和配置文件可持久写回,避免重启后丢失拓扑状态。全部实例上线后分别读取主节点、副本和其他 Sentinel 的视图;下面命令在 Sentinel 会话执行,mymaster 应替换为本环境名称。CKQUORUM 用于检查当前仲裁和故障转移授权条件,返回正常仍不等于已经完成真实切换验收。
SENTINEL MASTER mymaster
SENTINEL REPLICAS mymaster
SENTINEL CKQUORUM mymaster各 Sentinel 识别的目标名称、主副本地址和同伴符合预期,当前 CKQUORUM 检查通过;无持续认证或连接错误。配置持久化与重启后的恢复行为在测试环境验证,实例间没有未解释的拓扑分歧。
视图分歧时暂停业务迁移和故障演练,先修正地址、认证或配置问题。尚未发生角色变化时可逐项撤回新配置;若已出现选主或提升,则先核对权威和写入情况,不同时重置全部 Sentinel。
在测试客户端配置多个 Sentinel 地址、准确主节点名称及分别适用于 Sentinel 和数据节点的认证信息,确认发现后的地址实际可达。设置连接、命令超时与退避策略,核对连接池如何丢弃旧连接;对写请求明确超时后结果未知时的幂等或查询补偿方式,不能把所有命令都自动重试。先迁移非核心业务实例,保存错误率、重连时间和测试键行为,再逐批放行。
客户端经任一可用 Sentinel 能发现同一主节点,测试读写和认证正常;旧连接失效后的更新策略有实测结果。非幂等请求的重试边界清楚,首批迁移没有新增未解释的错误或重复业务效果。
客户端配置失败时恢复已验证的连接方案,但必须重新确认其指向当前权威主节点。发生角色切换后不能恢复硬编码旧主地址;无法确认主节点或请求结果时暂停相关写入并先核对。
接入与实际版本兼容的 Redis 和 Sentinel 指标端点,观察角色、复制链路、同步状态、内存、淘汰、持久化错误与客户端错误率,并持续记录 Sentinel 下线、选举和提升事件。告警区分采集失联、单副本故障、多数不可达和业务写入异常,附带主节点名称及当前拓扑入口。为全量同步和持久化预留资源,测试告警送达并统一各节点时钟,准备完整切换时间线。
每台数据节点与 Sentinel 的关键状态可追踪,指标角色与原生命令一致;多数不可达和复制中断有明确升级路径。测试通知包含当前拓扑与处理入口,资源阈值能够覆盖同步或持久化额外开销。
采集产生异常负载时撤回对应目标与频率,恢复原监控并保留切换事件日志。告警规则错误只回退新增规则,不通过调整实例角色消除告警;关键证据缺失时暂停后续演练。
在批准窗口和可控业务范围内,记录测试键状态与带唯一标识的写入序列,再按预案模拟当前主节点不可用,并确保旧主无法继续接收应用写入。观察主观下线、客观下线、多数授权、候选提升、其他副本重配置及客户端重连,逐项记录时间。故障持续时间受窗口和资源阈值约束,核对写请求成功、失败和结果未知三类状态,不把测试键存在直接等同于无数据丢失。
当前拓扑只允许一个权威主节点接写,客户端发现新主并在约定时限内恢复;测试序列的重复、缺口和未知结果均有统计。旧主隔离有效,告警和选主事件能对应到完整演练时间线。
新主尚未接写时先核对角色与数据状态再按预案撤销测试。新主已接写后保持其权威,旧主继续隔离;异常时暂停写入并调查差异,不能切回旧主或用旧 RDB/AOF 覆盖新主数据。
恢复故障节点连通前确认其不会被旧客户端直连写入,读取其数据和角色证据,按当前 Sentinel 权威视图使其作为新主副本重新同步;必要时先保留分歧数据副本供核对,再按已验证流程重建。观察同步对内存、磁盘和网络的影响,冗余稳定后再解除临时限制。归档实际恢复时间、测试数据缺口、客户端行为和配置版本,后续切回原节点应作为新的受控切换。
旧主已作为新主副本完成约定同步,所有 Sentinel 与客户端对当前主节点认识一致;内存、持久化和复制无新增未解释异常。验收记录如实列出数据与重试边界,后续观察有负责人和时间。
旧主重同步失败或数据分歧未解释时继续隔离并暂停其候选资格,保持新主权威及现有可用副本。不得为恢复原拓扑而覆盖新主数据;需要恢复历史数据时先在隔离环境核对并决定补偿方式。