记一次 ClickHouse 数据迁移(保姆级实践教程)

一、背景
查看空间大小 df -h
因为要部署某项目软件,从上面看到默认的根目录空间严重不足(因为部署clickhouse时全是默认存储目录),影响到其他软件部署测试,计划将clikhouse数据迁移出去。
clickhouse部署时存储目录结构如下:
- /etc/clickhouse-server:
服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
- /etc/clickhouse-client:
客户端配置,包括conf.d文件夹和config.xml文件。
- /var/lib/clickhouse:
默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
- /var/log/clickhouse-server:
默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。
- /etc/security/limits.d/clickhouse.conf:
文件句柄数量的配置。
二、目录配置
2.1 home目录下新建子目录
mkdir -p /home/fy/clickhouse/data
2.2 修改目录权限(注意新的目录,如data必须有读取和执行权限。若有子目录,记得一起修改
)
chmod a+rx /home/fy/clickhouse/data
三、停止数据库
service clickhouse-server stop/systemctl stop clickhouse-server
四、迁移数据库(数据、日志都迁移走)
4.1 数据迁移
mv /var/lib/clickhouse /home/fy/clickhouse/data/
4.2 日志迁移
4.2.1 新建日志存储目录
cd /home/fy/clickhouse/data
mkdir log
4.2.2 日志迁移
mv /var/log/clickhouse-server /home/fy/clickhouse/data/log/
五、修改配置文件
vim /etc/clickhouse-server/config.xml
将配置文件所有路径前缀为
/var/lib/clickhouse
-----》修改为/home/fy/clickhouse/data/
/var/log/clickhouse-server
-----》修改为/home/fy/clickhouse/data/log/clickhouse-server
如下图示例:
六、启动数据库
service clickhouse-server start/systemctl start clickhouse-server
- 如果启动失败,修改/data所属用户组即可
chown -R clickhouse:clickhouse /home/fy/clickhouse/data
重启数据库验证
service clickhouse-server restart/systemctl restart clickhouse-server
查看状态
service clickhouse-server status/systemctl status clickhouse-server
测试连接
clickhouse-client
七、查看空间验证
df -h
发现根目录空间明显变大了,到此,clickhouse数据就迁移完成了!!!!!