DDL job rollback, error msg:
cannot get disk capacity at /tmp/tidb/tmp_ddl-4001: no such file or directory
为什么偶尔会发生这个问题,会面都是手动添加,赋权才行。是什么原因造成文件夹丢失了?
DDL job rollback, error msg:
cannot get disk capacity at /tmp/tidb/tmp_ddl-4001: no such file or directory
为什么偶尔会发生这个问题,会面都是手动添加,赋权才行。是什么原因造成文件夹丢失了?
以前肯定没有报错,是在/tmp下的什么原因?
低版本升级上来的吗
参考下这里
确实是升级上来的,但是已经很久了,升级完也加过很多ddl
/tmp/tidb这目录的权限发一下看看呢
是目录没有了,重建的
可以把 tidb_ddl_enable_fast_reorg 关掉,老版本没有这个目录,新版本引入的特性默认开启,但是目录升级没能自动创建
加过目录,后来不知道为什么没了。才报错
tidb_ddl_enable_fast_reorg
从 v6.3.0 版本开始引入ON
ADD INDEX
操作是否使用了添加索引加速功能,可以执行 ADMIN SHOW DDL JOBS
语句查看 JOB_TYPE
一列中是否含有 ingest
字样。注意
temp-dir
。如果 temp-dir
无法使用,TiDB 会退回到非加速的索引创建方式。建议将 temp-dir
挂载在 SSD 磁盘上。temp-dir
路径已正确挂载了 SSD 磁盘,并确保运行 TiDB 的操作系统用户对该目录有读写权限,否则在运行时可能产生不可预知的问题。该参数是 TiDB 的配置参数,设置后需要重启 TiDB 才能生效。因此,在升级前提前进行设置,可以避免再次重启。确实需要使用到temp-dir,这个目录是否能够指定不在tmp下好点?
啊,正常这个建上,怎么会被删除呢?你看下你的主机策略有针对/tmp目录的处理没。。。
指定在别的目录也可以
刚看了,又消失了文件夹
每次消失都是同一个tidb节点上吗
本地有配置对tmp清理的任务没
2个节点的,都没了。。最近没执行ddl
百度了下,没有crontab 或者 tmpwatch这种
more /etc/crontab里边包含一行
2 4 * * * root run-parts /etc/cron.daily 注:表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;
其中有一个tmpwatch程序,会自动把/tmp目录下的过期文件和目录删除掉。可以通过修改该文件的方式,把该目录作例外处理。
more /etc/cron.daily/tmpwatch
看到了,感谢
这个是目录和对应目录权限的问题,tidb执行创建索引的ddl语句时默认会使用/tmp/tidb/tmp_ddl-4001目录,如果服务器所在节点没有该目录,就会报错,所以需要自己创建目录并赋予权限,之前也遇到过这种问题,不知道高版本是否解决了该问题,不过可以自己在集群配置文件中修改该目录
看来是全县问题 你创建好目录就行