clickhouse-数据迁移(跨服务器|freeze+attach)
目录
- 0 背景
- 1 准备工作
- 2 实施方案
-
- 方案一:remote查询远程数据,直接插入目标数据库(未使用)
- 方案二:FREEZE+ATTACH(实际使用)
-
- 备份源数据
- 将源数据传输到目标服务器
- 目标数据库加载数据
0 背景
clickhouse所在A服务器分区的可用空间不足,而服务器B的磁盘空间较充足。
综合考虑后,决定本次数据迁移目标为:在不动clickhouse相关服务的情况下,对历史数据进行跨服务器备份,然后在需要时,删除服务器A中的clickhouse原始数据。
1 准备工作
在服务器B的最大分区中,安装相同版本和配置的clickhouse。
安装过程可参考:clickhouse-安装部署
复制服务器A中clickhouse的表结构,在服务器B的clickhouse中创建对应库表。
2 实施方案
方案一:remote查询远程数据,直接插入目标数据库(未使用)
缺点:仅适用于小数据量,查询大量数据直接插入,可能出现数据不一致问题
步骤:
1.在目标数据库执行插入:insert into select * from remote()
方案二:FREEZE+ATTACH(实际使用)
备份源数据
1.在源数据库执行备份语句
ALTER TABLE database.table