减少 TiDB 集群副本数(max-replicas)对在线集群的潜在影响

大佬们,想求问一下,我们当前的群集(v4.x.x)大小约为 100TB,复制 “max-replicas ”默认为 3。
如果我们将其减少到 2 个,在群集在线的情况下会产生什么潜在影响?
我们的流量非常大,CPU 利用率保持在 70% 左右,峰值可达 80-90。但我们可以将流量转移到其他流量源。
如果我们在实时集群上进行更改,这是否会影响读取查询的数据一致性?

两个怎么保证多副本存活,不能是两副本啊

这个不应该是扩容吗,为啥是缩容?

以下是tidb ai小助手的回复,我感觉是比较全面的。

将 TiDB 集群的 max-replicas 从 3 改为 2 会对数据冗余、故障恢复能力和集群稳定性产生多方面的影响。

  1. 数据冗余
  • max-replicas 参数决定了每个 Region 的副本数量。将其从 3 改为 2 意味着每个 Region 只有两个副本。这会降低数据冗余,因为减少了一个副本,意味着在某个节点出现故障时,数据的可用副本数量减少。
  1. 故障恢复能力
  • 在故障恢复方面,减少副本数量会降低系统的容错能力。原本有三个副本时,即使一个副本失效,系统仍能正常运行并保持数据的高可用性。而当副本数量减少到两个时,如果一个副本失效,系统将面临更大的数据丢失风险,因为只剩下一个副本可用。
  • 此外,减少副本数量可能会影响到 TiDB 的高可用性和故障恢复速度,因为在发生故障时,系统需要更快地重新分配和恢复副本以维持数据的完整性。
  1. 集群稳定性
  • 从集群稳定性的角度来看,减少副本数量可能会降低系统的资源消耗,因为每个 Region 的副本数量减少,意味着需要的存储和网络资源也相应减少。然而,这种资源节省是以降低数据冗余和容错能力为代价的。
  • 在某些情况下,减少副本数量可能会导致集群在面对硬件故障或网络分区时更容易出现不稳定的情况,因为系统的冗余度降低。

综上所述,将 max-replicas 从 3 改为 2 会降低数据冗余和故障恢复能力,可能会对集群的稳定性产生负面影响,特别是在面对故障时。为了确保系统的高可用性和数据安全性,通常建议在生产环境中保持较高的副本数量。

1 个赞

变为2副本会失去高可用性,2副本的情景再宕机一个副本,则无法对外提供服务
减少副本操作不会影响数据一致性

1 个赞

默认配置下,是不能修改为2副本的,最低三副本

先增加后减少

2个副本和1个副本没区别的,都是挂一个直接废。。。。
至于在线改副本数量,主要影响的是tikv的io,pdctl改下pd store limit ,改小一点,应该会慢一点删除副本,影响没那么大

tidb不能用2,2怎么选主

tidb默认建议3副本,涉及raft协议,2个副本没意义,到时选主都有分歧,可能是挂一个直接全部挂掉了

用奇数吧,偶数有点危险。