Application: filesystem error: in rename: Invalid cross-device link [/var/lib/clickhouse/store/
项目场景:
用docker镜像容器部署clickhouse,启动报错,docker镜像是CentOS系统,如果你是Ubantu系统可能会出现类似错误。
问题描述:
当我用Clickhouse提示的命令启动时报错,su -s /bin/sh ‘clickhouse’ -c '/usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid ':
2021.12.16 11:00:59.977136 [ 1678 ] {} <Error> Application: filesystem error: in rename: Invalid cross-device link [/var/lib/clickhouse/store/958/958e1793-c22e-49d2-958e-1793c22e29d2/202112_22711_22711_0] [/var/lib/clickhouse/store/958/958e1793-c22e-49d2-958e-1793c22e29d2/delete_tmp_202112_22711_22711_0]
原因分析:
字面上大概的意思就是无效跨设备链接
解决方案探索:
网上有人说改名字就行于是我尝试改名字
mv /var/lib/clickhouse/store/958/958e1793-c22e-49d2-958e-1793c22e29d2/202112_22711_22711_0] /var/lib/clickhouse/store/958/958e1793-c22e-49d2-958e-1793c22e29d2/delete_tmp_202112_22711_22711_0
但实际没什么用,新的无效链接又来了
<Error> Application: filesystem error: in rename: Invalid cross-device link [/var/lib/clickhouse/store/748/7483d16d-c3bd-4e75-b483-d16dc3bd1e75/202112_174265_181343_2598] [/var/lib/clickhouse/store/748/7483d16d-c3bd-4e75-b483-d16dc3bd1e75/delete_tmp_202112_174265_181343_2598]
仔细分析,实际原因是因为/var/lib/clickhouse/store/路径放的是数据,包括索引文件。因为是另一台容器打出来的镜像,所以会是另一台容器的数据及索引,于是我们把这个路径的数据删掉就可以了
cd /var/lib/clickhouse/store/
rm -rf *
接着用标准命令启动
/etc/init.d/clickhouse-server start
控制台日志:/var/run/clickhouse-server/clickhouse-server.pid file exists and contains pid = 1822.
Will run su -s /bin/sh 'clickhouse' -c '/usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid --daemon'
Waiting for server to start
Server started
验证
ss -ntl |grep 9000
控制台输出:
LISTEN 0 64 [::]:9000 [::]:*
端口起来了,溜溜球了