tiflash从1副本改成2个副本,怎么确认2副本可用

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
k8s

【概述】 场景 + 问题概述
tpch
【背景】 做过哪些操作

【现象】 业务和数据库现象


image



【问题】 当前遇到的问题

【业务影响】

【 TiDB 版本】
5.4.0
【附件】 相关日志及监控(https://metricstool.pingcap.com/)


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

2赞

同步状态是1那不就是同步完了,实际没有同步吗?

1赞

不是2副本吗,available应该是2啊

1赞

available是是否可用吧,只有0和1

2赞

哦,那我这个意思就是2副本同步完了?

看了下,确实是2个learner了。谢谢。。。。我以为一直没同步。

老哥,虽然你回复的有理有据,但是我发现,不是这么回事儿。我新加了2个tiflash,alter table增加了2个副本。直接就是1了。同步进度并没有从0.0到1.0再跳一遍。可能learner已经加上了,但是什么时候同步完数据,副本可用,怎么确定呢?
image

我实际测试了下,以下是加了副本之后的截图


image


可以看到同步进度是由0逐渐到1的,变成1之后AVAILABLE才变成1,是不是你的表比较小,瞬间就从0到1了。

不是,tpch,一个表有个几十G的。你这样试下,先是1副本,等progress是1以后,再改成2副本试试。是不是还是1.但是实际上你的第二个副本应该还不可用。

我明白你的意思了,不是从0到2副本,而是1到2是吧。
根据官方文档的描述

PROGRESS 字段代表同步进度,在 0.0~1.0 之间,1 代表至少 1 个副本已经完成同步。

我理解如果你本身就已经有副本了,那说明至少 1 个副本已经完成同步完成,所以PROGRESS 字段就会直接是1,这样理解不知道对不对。

对,什么时候3副本可用?这个能确定吗?

我是5.4.0,我的这个跟你的不太一样,我由1改成2之后,如下图所示:
image
我一个表20G

我这边测试progress就没有什么变化。谁能给个确切的结果啊:joy: ,我是通过看tiflash监控的region数,等一条直线后就认为OK了。不过有更准确的方法吗。

SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘库名’ and TABLE_NAME = ‘表名’;
通过这个sql跟踪

我就是查的这个表,progress不变化。

请参考https://docs.pingcap.com/zh/tidb/v3.1/maintain-tiflash
AVAILABLE为1表示可用
AVAILABLE为0,但PROGRESS出于0-1之间,表示同步进度
目前同步进度的计算方式是只要有一个副本,则认为该Region是Ready的

2赞