加索引报错ERROR 1105 (HY000): DDL job rollback, error msg: cannot get disk capacity at

加索引执行半天,然后报错

请问怎么解决

是不是用了 fast ddl,然后 fast ddl 的盘不够回滚了。https://docs.pingcap.com/zh/tidb/stable/tidb-distributed-execution-framework#启用前提

这个咋看啊

之前也是不能加索引,只能建新表的时候加索引

这个配置了吗,tidb节点硬盘临时空间够大吗?

1 个赞

硬盘不够用或者达到警告值,会使DDL失败

请问这个不配置就不能加索引吗

看看磁盘空间是不是不足了。

看截图有参数可以关闭fasd ddl

已经加了目录了,虽然没报错,但是一直执行,好长时间了

fast ddl 下,添加索引他是在 tidb-server 上生产 kv 存储文件,然后导入 tikv 集群中来加速。因此 tidb-server 需要一个大盘且盘比较好。
如果没有这个条件可以将 fast ddl 关闭。加索引看表数据量的,表数据量越多,添加时间就越长。

1 个赞

参数temp-dir更改临时文件目录,默认是.tmp/tidb,看看这个是不是空间满了

添加索引的时间长度通常情况下是和表的数据量正相关的,如果你的表比较大的话,添加索引的实际比较久是符合预期的。

不过在v7.1.0版本以后,加索引的速度按理来说也很快的。
如果你可以贴更多详细信息,我们可以完整分析下。

解决方法:
1、查看下ddl执行信息

mysql> admin show ddl;

关注OWNER_ADDRESS字段值,例如是 172.1.1.2:4000,得到端口是 4000

2、创建目录

mkdir -p /tmp/tidb/tmp_ddl-4000
chown tidb:tidb /tmp/tidb/tmp_ddl-4000

注意:这里的4000替换成实际的端口

学习了,Mark

学习了,学习了

还有一种方法是关闭快速加索引

磁盘没空间了吧