1. 故障副本重搭。分布式数据库副本的健康状态对于整个系统的稳定运行至关重要。由于各种原因,导致复制中断或数据不一致时,需要进行副本重搭操作,以修复受影响的副本。重搭操作应符合如下流程:
(1)问题识别:通过监控系统或人工检查,发现副本出现问题。确定问题的原因和影响范围。
(2)隔离受影响的副本:将出现问题的副本从复制拓扑中移除,避免它影响其他节点。停止对该副本的读写操作,防止数据进一步损坏。
(3)重建新副本:创建一个新的副本实例,或清空受影响副本的数据。从 leader 或其他健康的副本进行数据同步,重建副本数据。同步过程中,确保数据的一致性和完整性。重建完成后,将副本加入集群拓扑。
(4)数据同步验证:监控新副本的复制状态和延迟,确保与 leader 库保持一致。对新副本进行数据一致性校验,如比对表结构、数据行数等。进行必要的性能测试,评估新副本的处理能力。
(5)旧副本下线(可选):进行必要的数据备份或归档。下线旧副本,回收资源或进行后续处理。
2.计划内副本重搭。计划内的副本重搭操作,常见于节点下线、版本升级、硬件更换等场景。与故障引发的非计划性重搭不同,计划内重搭有充分的准备时间,可以更好地控制操作过程和影响范围。计划内副本重搭操作通常包括以下流程:
(1)重搭计划制定:明确重搭的原因、目标和时间安排。评估重搭对业务的影响,制定降低影响的策略。评估是否需要额外的硬件资源。
(2)重建新副本:创建一个新的副本实例,或清空受影响副本的数据。从 leader 库或其他健康的副本进行数据同步,重建副本数据。同步过程中,确保数据的一致性和完整性。重建完成后,将副本加入集群拓扑。
(3)数据同步验证:监控新副本的复制状态和延迟,确保与 leader 保持一致。对新副本进行数据一致性校验,如比对表结构、数据行数等。进行必要的性能测试,评估新副本的处理能力。
(4)服务切换(可选):选择合适的时间窗口,尽量减少对业务的影响。将读写请求从旧副本切换到新副本。监控切换过程,确保服务的平稳过渡。
(5)旧副本下线(可选):停止旧副本的复制进程,断开与 leader 的连接。进行必要的数据备份或归档。下线旧副本,回收资源或进行后续处理。




