前言
最近导数据库玩到上瘾,WSL2关机操作有过这么几次关机导致ClickHouse服务器出现数据文件出现问题,无法启动。
处理
排查日志文件/var/log/clickhouse-server/clickhouse-server.err.log
发现,文件在启动检查处理时出错,报错为<Error> Application: Access to file denied
跟进发现目录权限一切正常,尝试删除文件夹。
删除后顺利变为下一个报错,文件夹内大小极小,应该不会出问题。
将以下代码保存为start_clickhouse.sh
:
#!/bin/bash
while [ 1 ];
do
mv `grep 'Application: Access to file denied:' /var/log/clickhouse-server/clickhouse-server.log |cut -d: -f5|tail -n1 -` /tmp && clickhouse start
sleep 1
done
运行bash start_clickhouse.sh
,等待即可,运行到最后mv报错就应该成功启动了。
后记
有可能,极大可能,Clickhouse在后台MergeTree整合的时候,进行了关机操作,导致data inconsistent。
如果有熟悉源码的老哥欢迎解答一下。