ClickHouse数据迁移(远程)

一、背景

公司最近买了新的服务器,旧的服务器上面安装了ClickHouse22.2.2.1,新的服务器上面安装了ClickHouse24.9.2.42,两个版本之间要做历史数据迁移

旧服务器:80(IP最后一段,以下代称),ClickHouse版本:22.2.2.1

新服务器:84(IP最后一段,以下代称),ClickHouse版本:24.9.2.42

由于使用ClickHouse官方提供的clickhouse-backup工具出了一些问题,所以采用此种方式进行,下面进行方法的详细步骤说明。

二、步骤

注:为了不影响旧服务器上面的业务,所以新建了一张表进行测试。

1、数据快照准备

进入ClickHouse的数据存储路径

cd /icc/tools/clickhouse/data

创建shadow路径

sudo mkdir -p clickhouse/shadow

赋权给clickhouse用户组

sudo chown clickhouse:clickhouse clickhouse/shadow

进入clickhouse-client

在default库下面创建test表(用来测试迁移数据)

进行表冻结

这里冻结表后,不影响这张表的正常使用(新增、查询)

alter table test freeze;

冻结以后,ClickHouse会在刚刚创建的shadow文件夹中自动生成数据快照

2、远程拷贝

执行远程拷贝命令

sudo scp -r clickhouse/shadow/1/ 84用户名@84IP:/icc/tools/clickhouse/shadow

-r:拷贝整个文件夹及子目录里面所有的文件

84用户名:新服务器的用户名

84IP:新服务器IP

/icc/tools/clickhouse/shadow:新服务器上的目标地址

在84的/icc/tools/clickhouse/shadow目录下

数据拷贝成功,整个迁移过程就成功了一半!加油

3、数据恢复

在84上default库中创建test表(表结构要跟80上的test表保持一致,default库也可以自定义)

在84服务器上找到test表(找到这张表存储数据的软连接)

其中data/data/default,这是ClickHouse存储数据路径下的default库的数据文件路径

data/store/9b7/9b7fc213-0bf1-44e5-84cd-62ddd19417fa/这个路径下有一个detached文件夹,把第2步中的原始文件拷贝进去

sudo cp -rl /icc/tools/clickhouse/shadow/1/store/f12/f1217640-24fd-43b1-8af0-cbfa6d6c6be2/all_1_5_1/ data/store/9b7/9b7fc213-0bf1-44e5-84cd-62ddd19417fa/detached

注意这里使用了sudo拷贝,detached文件夹下的所有文件都是root用户组,这样clickhouse识别不了,需要赋权给clickhouse用户组

sudo chown -R clickhouse:clickhouse data/store/9b7/9b7fc213-0bf1-44e5-84cd-62ddd19417fa/detached

数据到此就准备好了。

接下来执行恢复数据命令(进入clickhouse-client界面之后)

alter table test attach partition ALL

大功告成

三、总结

1、freeze执行后,新插入这张表的数据,不会被迁移

2、可以通过以下命令删除之前备份的快照

alter table test unfreeze with name '1';

这里的1就是在shadow下面生成的文件夹名称

相关推荐
zhoupenghui1685 天前
ClickHouse merge引擎详解以及应用
数据库·clickhouse·merge·mergetree
ClickHouseDB6 天前
ClickHouse 十年开源,今非昔比!
clickhouse·开源·apache
ClickHouseDB7 天前
ClickHouse 开源十年:数据分析领域的中流砥柱
clickhouse·数据分析·开源
java_logo10 天前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
ClickHouseDB12 天前
TPC-H 成本不到一分钱:ClickHouse Cloud 对比 Snowflake、Databricks、BigQuery 和 Redshift
clickhouse
隔壁阿布都15 天前
ClickHouse完整指南
服务器·数据库·clickhouse
数据库小学妹15 天前
MySQL做报表太慢?引入ClickHouse列式存储,同一个查询快240倍
mysql·clickhouse·列式存储·分析型数据库·向量化执行·olap数据库·mysql对比
ClickHouseDB19 天前
推出 ClickHouse Cloud 中的多阶段分布式查询执行
分布式·clickhouse
weixin_3077791321 天前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
SelectDB技术团队22 天前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris