ddl 加索引卡住

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.2
【复现路径】为11 亿的表增加索引
【遇到的问题:问题现象及影响】
在rowcount 几乎就要全部完成的时候,卡住不动了

在tidb-owner 日志里看到了如下成功的信息

从11.01 之后就没有ddl 相关的日志了

相信日志信息查看附件
tidb.tar.gz (7.1 MB)

看看tidb节点/tmp/tidb满了吗

没满是有500g

/tmp/tidb 目录空间足够,随后我修改了temp-dir 目录的配置到新的地方也无法成功执行

目前的策略是关闭了fast_ddl ,重新执行加索引操作

关闭了fast ddl 之后重新执行成功

成功了嘛

嗯,成功了,我更新了下帖子

:leftwards_hand: 有官方文档的解释嘛

还没有,目前是这么解决了。然后我在7.5.3 的版本试了下,使用fast ddl 也能成功,我再试下其他集群验证下

tidb_ddl_enable_fast_reorg 从 v6.3.0 版本开始引入

  • 作用域:GLOBAL
  • 是否持久化到集群:是
  • 是否受 Hint SET_VAR 控制:否
  • 类型:布尔型
  • 默认值:ON
  • 这个变量用来控制是否开启添加索引加速功能,来提升创建索引回填过程的速度。开启该变量对于数据量较大的表有一定的性能提升。
  • TiDB v7.1.0 引入了快速加索引功能的检查点机制,即使 TiDB owner 因故障重启或者切换,也能够通过自动定期保存的检查点恢复部分进度。
  • 要验证已经完成的 ADD INDEX 操作是否使用了添加索引加速功能,可以执行 ADMIN SHOW DDL JOBS 语句查看 JOB_TYPE 一列中是否含有 ingest 字样。

注意

  • 要使用索引加速功能,你需要提供一个可写且具有足够空余空间的临时路径 temp-dir。如果 temp-dir 无法使用,TiDB 会退回到非加速的索引创建方式。建议将 temp-dir 挂载在 SSD 磁盘上。
  • 在升级到 v6.5.0 及以上版本时,请确保 TiDB 的 temp-dir 路径已正确挂载了 SSD 磁盘,并确保运行 TiDB 的操作系统用户对该目录有读写权限,否则在运行时可能产生不可预知的问题。该参数是 TiDB 的配置参数,设置后需要重启 TiDB 才能生效。因此,在升级前提前进行设置,可以避免再次重启。

是这个temp的路径和权限问题吗?

这个路径和磁盘空间没问题,而且我改了配置之后也无法执行成功

感觉tidb应该在开启参数情况下,自动检测一下系统配置的合理性。

学习了