版本:v5.0.1
问题:如何修改tiflash的副本数呢?比如想增加一个副本、减少一个副本?
具体描述:集群为5.0.1,tiflash有3个实例,集群中有的表只有1个tiflash副本,有的表有3个tiflash副本;现在想统一规划为2个副本。
个人操作: 在库中执行了:alter table tb_name set tiflash replica 2; 看到副本数立马变成2了,有些大表感觉调整的没那么快吧,如何查看副本调度工作确实已经完成了呢?
可以参考: 使用 TiFlash | PingCAP Docs
可通过如下 SQL 语句查看特定表(通过 WHERE 语句指定,去掉 WHERE 语句则查看所有表)的 TiFlash 副本的状态:
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘<db_name>’ and TABLE_NAME = ‘<table_name>’
对于副本数, tiflash 仅需要同步需要下推 tiflash 计算的表即可,所以会需要指定 table_name 字段
可以参考: https://pingcap.com/docs-cn/stable/tiflash/tiflash-overview/
我知道如何查看tiflash副本数。
我的问题是:对于修改大表的tiflash副本数(比如由1修改为2),在系统表中看到副本数立马变成2了,有些大表感觉调整的没那么快吧,如何查看副本调度工作确实已经完成了呢
该语句中可以查看副本状态,同时也是可以查看同步状态的,可以参考 PROGRESS 字段
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘<db_name>’ and TABLE_NAME = ‘<table_name>’
查询结果中:
- AVAILABLE 字段表示该表的 TiFlash 副本是否可用。1 代表可用,0 代表不可用。副本状态为可用之后就不再改变,如果通过 DDL 命令修改副本数则会重新计算同步进度。
- PROGRESS 字段代表同步进度,在 0.0~1.0 之间,1 代表至少 1 个副本已经完成同步。