磁盘压满数据,导致tikv宕机

这个标签不知道选的合不合适,
如题,极限测试时候,将磁盘压满数据,导致tikv宕机,并且无法启动。
删除部分数据(手动在磁盘里删除数据),tikv依旧无法启动。
重置清零所有数据后,tikv可以启动。

不知道你那边能重现这个问题吗?

  1. 测试环境是什么? 具体几个节点的tikv,分别在几个服务器或者目录
  2. 你删除了哪些数据?
  3. 磁盘压满,是指tikv所在目录 df -h 查看 100%吗?

很抱歉,这些点没有说清。
1.测试环境 是在 Linux7中,有三个tikv,一个数据盘200G ,分布在三个服务器
2.我删除了/data/deploy/data/db 下 ***.sst结尾的文件
3.磁盘压满指的是存放数据的磁盘(tikv所在目录)df -h查看100%

你好,

磁盘满了,tikv 启动收到影响是预期的。

4.0 版本 tikv 参数中多了一个 storage.reserver-space 参数,默认是 2G,作为预留空间,会在 {tikv_data} 目录下创建一个 space_placeholder_file 文件,用于提前占用空间,磁盘使用满的时候可以用于释放空间。

手动删除 .sst 文件会破坏 tikv 的数据,不建议这样操作,可以清理 tikv 中的 old LOG 日志来缓解空间和其他文件来缓解空间。

不建议直接删除 LOG 这个文件本身,因为是当前正在写的 file,由于文件句柄的持有,要等 log rotation

tikv的log文件与.sst为同一个目录吗?
您的言下之意是,tidb目前无法做到自动保留空间?

这里说的是log目录下的tikv.log文件,释放空间,其他.sst里的文件都不要手工删除,多谢。

你好,

tikv 因为中有两个 rocksdb,rocksdb 的日志位于 {deploy_dir}/data 下的 raft 和 db 目录下,文件名为 LOG 和 LOG.old.xxx;一般情况下不建议清理,如果像你这种极端情况可以考虑

tikv 本身还有日志,存在 log/tikv.log

感谢您的解答。
我现在明白在磁盘占用100%极端情况下的解决情况,一是删除 {deploy_dir}/log 目录下日志,如果依旧无法启动 再删除{deploy_dir}/data/ 下的log文件。启动后 ,选择性删除部分数据库数据,保证线上正常运行。此外就是扩大磁盘
今天真是麻烦两位同学了!

1 个赞

:ok_hand:,nice 总结,这样很便于其他同学搜索~

1 个赞

我也遇到了,搜了这半天才找到!:joy:

nice

万事不决删log

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。