Clickhouse 修改默认的数据目录配置文件,迁移数据解决空间不足

Clickhouse默认是安装到/var/lib/clickhouse目录下,很容易将根目录空间占满。通过修改配置文件,将数据目录指向新的位置,并将数据迁移到新目录来解决空间问题。

环境

默认的根目录只有6G空间,已经无法做测试。新增加了一个/data的卷,计划将数据迁移过去。

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 479M     0  479M   0% /dev
tmpfs                    496M     0  496M   0% /dev/shm
tmpfs                    496M  7.8M  488M   2% /run
tmpfs                    496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-root  6.2G  5.8G  409M  94% /
/dev/sda1               1014M  172M  843M  17% /boot
tmpfs                    100M   40K  100M   1% /run/user/0
/dev/sda3                 71G  6.4G   61G  10% /data

停止数据库

先将数据库停下来

systemctl stop clickhouse-server

修改目录权限

注意新的目录,比如/data必须有读取和执行权限。如果有子目录,记得一起修改

chmod a+rx /data

迁移数据

将整个目录,建议不单单是data目录,迁移到新的目录下。

mv /var/lib/clickhouse /data/

修改配置文件

修改配置文件里的和/var/lib/clickhouse有关的配置,替换为/data/clickhouse即可。我这里用了sed命令。

sed -i 's/var\/lib\/clickhouse/data\/clickhouse/g' /etc/clickhouse-server/config.xml

启动数据库

systemctl start clickhouse-server.service

确认正常使用

[root@localhost data]# clickhouse-client
ClickHouse client version 21.4.5.46 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.4.5 revision 54447.