为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.7
- 【问题描述】:打开大部分表都报:tikv server timeout
1:集群display 各节点都正常:
2:随便打开一张表报错:
3:restart tikv 所有节点还是报相同错误;
4:去掉tiflash 副本集后打开表正常;
5:tiflash log 如下:
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
1:集群display 各节点都正常:
2:随便打开一张表报错:
3:restart tikv 所有节点还是报相同错误;
4:去掉tiflash 副本集后打开表正常;
5:tiflash log 如下:
去掉 tiflash 副本级是如何进行操作的?
之前报错的时候,tiflash 的副本状态是可用状态吗?
重新构建 TiFlash 副本,等待副本状态变为可用之后,查询同样会报错么?
1:去掉副本集:ALTER TABLE 表 SET TIFLASH REPLICA 0;
2:display 状态正常,如上图,一直都是正常的。
3:还没构建副本
稍等,我们分析下。
这个图里的 log 是 TiCDC 的 log,不是 TiFlash 的 log。
可以尝试通过如下步骤排查:
SELECT * FROM information_schema.tiflash_replica
确认表 t 没有 TiFlash 副本SELECT COUNT(*) FROM t
,确认返回的结果是否符合预期EXPLAIN SELECT COUNT(*) FROM t
查看执行计划,确认查询的数据源是 TiKV(结果中有 cop[tikv]
字样)ALTER TABLE t SET TIFLASH REPLICA 1
为 t 增加 TiFlash 副本SELECT * FROM information_schema.tiflash_replica WHERE table_name = "t"
查看副本同步状态,progress 值为 1 表示同步已完成,available 值为 1 表示 TiFlash 副本可用。确认同步完成后可以进行下一个步骤,同步时间可能较久,取决于 t 中的数据量SELECT /*+ read_from_storage(tiflash[t]) */ COUNT(*) FROM t
对 TiFlash 副本进行查询,确认返回的结果是否符合预期如果中间某个步骤出现错误,请在帖子中回复相关信息。