打开表报 tikv server timeout

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.7
  • 【问题描述】:打开大部分表都报:tikv server timeout

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。

可以尝试通过如下步骤排查:

  1. 使用 SELECT * FROM information_schema.tiflash_replica 确认表 t 没有 TiFlash 副本
  2. 对表 t 进行任意查询,比如 SELECT COUNT(*) FROM t,确认返回的结果是否符合预期
  3. 使用 EXPLAIN SELECT COUNT(*) FROM t 查看执行计划,确认查询的数据源是 TiKV(结果中有 cop[tikv] 字样)
  4. 使用 ALTER TABLE t SET TIFLASH REPLICA 1 为 t 增加 TiFlash 副本
  5. 等待一段时间后,使用 SELECT * FROM information_schema.tiflash_replica WHERE table_name = "t" 查看副本同步状态,progress 值为 1 表示同步已完成,available 值为 1 表示 TiFlash 副本可用。确认同步完成后可以进行下一个步骤,同步时间可能较久,取决于 t 中的数据量
  6. 使用 SELECT /*+ read_from_storage(tiflash[t]) */ COUNT(*) FROM t 对 TiFlash 副本进行查询,确认返回的结果是否符合预期

如果中间某个步骤出现错误,请在帖子中回复相关信息。