You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse服务器文件系统错误:指定文件或目录不存在

ClickHouse文件系统错误排查:找不到data.mrk3文件

错误日志原文

[root@localhost /]# sudo tail -n 10 /var/log/clickhouse-server/clickhouse-server.err.log


9. ? @ 0x154cb2dc in /usr/bin/clickhouse
10. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xaf6546a in /usr/bin/clickhouse
11. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xaf674a4 in /usr/bin/clickhouse
12. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xaf62837 in /usr/bin/clickhouse
13. ? @ 0xaf662fd in /usr/bin/clickhouse
14. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
15. __clone @ 0xfeb0d in /usr/lib64/libc-2.17.so

Cannot print extra info for Poco::Exception (version 22.2.2.1)
2022.08.30 17:34:13.036190 [ 11926 ] {} <Error> Application: filesystem error: in directory_iterator::directory_iterator(...): No such file or directory [/var/lib/clickhouse/store/848/848085d9-4c3c-4a59-9c5b-6481f8022781/202208_215813_215813_0/data.mrk3]

日志翻译

无法打印Poco::Exception的额外信息(版本22.2.2.1);
2022年8月30日 17:34:13.036190 [ 11926 ] {} <错误> 应用程序:文件系统错误:在directory_iterator::directory_iterator(...)中:找不到指定的文件或目录 [/var/lib/clickhouse/store/848/848085d9-4c3c-4a59-9c5b-6481f8022781/202208_215813_215813_0/data.mrk3]

可能原因

  • 文件/目录误删:运维操作、自动清理脚本或磁盘空间回收时,意外删除了该标记文件或上级目录
  • 存储介质故障:磁盘出现坏道、挂载点异常,导致文件无法被正常读取,系统返回"不存在"错误
  • 服务异常终止:ClickHouse意外崩溃时,数据未完成落盘,导致标记文件缺失或损坏
  • 权限不足:ClickHouse进程(默认clickhouse用户)无该文件或目录的读取权限,系统返回权限类错误但被判定为"文件不存在"

解决方案

1. 验证文件真实状态

执行以下命令检查文件路径是否存在,以及权限情况:

# 检查目标文件所在目录的内容
ls -l /var/lib/clickhouse/store/848/848085d9-4c3c-4a59-9c5b-6481f8022781/202208_215813_215813_0/

# 检查上级目录的权限信息
stat /var/lib/clickhouse/store/848/848085d9-4c3c-4a59-9c5b-6481f8022781/

2. 修复权限问题

如果确认是权限不足,调整目录和文件的所属用户为clickhouse:

chown -R clickhouse:clickhouse /var/lib/clickhouse/store/848/848085d9-4c3c-4a59-9c5b-6481f8022781/

3. 恢复缺失文件

  • 有备份的情况:从ClickHouse备份(如clickhouse-backup生成的备份)中恢复对应的data.mrk3标记文件及关联的data.bin数据文件
  • 无备份的情况:删除损坏的分区后重新同步数据。先定位分区所属表,执行删除命令:
ALTER TABLE your_table_name DROP PARTITION '202208_215813_215813_0';

之后重新导入该分区的原始数据。

4. 检查存储健康状态

排查磁盘硬件或挂载问题:

# 检查磁盘挂载状态
df -h

# 检查磁盘健康(替换为实际磁盘设备)
smartctl -a /dev/your_disk_device

5. 重启服务验证

完成上述操作后,重启ClickHouse服务确认问题是否解决:

systemctl restart clickhouse-server

内容的提问来源于stack exchange,提问作者haoaremesda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:51:24