tiflash调整副本(由3副本调整为2副本)时候表能不能访问?

可以参考下小助手的回复,很详细了


当需要调整 TiFlash 副本的数量时,可以在 TiDB 中执行 alter tableset tiflash replica 语句,这条语句作为 DDL 语句执行。执行该语句后,TiDB 会将该语句转化为一系列的 DDL 操作,然后将这些 DDL 操作发送给 TiFlash 实例。TiFlash 实例会定期启动一个子进程来处理与 TiFlash 副本添加、删除相关的操作。在这个过程中,如果在进程列表中偶尔看到一个名为 tiflash_cluster_manager 的不常驻进程(在官网中称为 “pd buddy”),属于正常情况。其日志会输出到 tiflash_cluster_manager.log。具体的添加 TiFlash 副本各阶段集群中组件的工作可以参考 [1]

需要注意的是,按库构建 TiFlash 副本命令实际是为用户执行一系列 DDL 操作,对资源要求比较高。如果在执行过程中出现中断,已经执行成功的操作不会回退,未执行的操作不会继续执行。因此,在执行该操作时需要注意集群的资源情况,以免出现问题。具体可以参考 [2][3]


在 TiFlash 调整副本的过程中,如果是增加副本,TiFlash 会自动将原有的数据同步到新的副本上,不会清理原来的数据。如果是减少副本,TiFlash 会将原有的数据同步到其他副本上,然后再删除该副本,也不会清理原来的数据。因此,TiFlash 调整副本的过程中不会清理原来的数据,而是会自动同步到新的副本上或者其他副本上。具体可以参考 [1][2]

需要注意的是,TiFlash 副本的同步过程需要一定的时间,具体时间取决于数据量的大小和网络带宽的情况。在同步过程中,TiFlash 副本可能会处于不可用状态,因此在调整副本的过程中需要注意集群的可用性。


可以参考这块的内容:

3 个赞