首页 > 其他 > 详细

ClickHouse冷备份与还原

时间:2020-05-11 10:30:35      阅读:489      评论:0      收藏:0      [点我收藏+]

文档前提:

这里演示的是两个分布式节点,两个集群节点组成的分布式集群。

如果多个节点,就操作多次就行了。

演示类似下图结构:

? 技术分享图片

下文中sgdatabase是对应的数据库名字,historysignal是集群表名,historysignal_Distributed是分布式表名。

这里只演示一个数据表,需要多个表或其他的表,请类推。

我这里的节点是:

10.168.1.100:8123

10.168.1.100:8124

10.168.1.101:8123

10.168.1.101:8124

将100的两个节点冷备,之后还原到102中。

备份

1、卸载分布式节点的数据

打开DBeaver 工具,连接到需要备份的机器上的所有节点。

# 卸载对应的表
detach table [DB].[TABLE]

例如我这里卸载10.168.1.100上面的节点1的sgdatabase.historysignal表。

detach table sgdatabase.historysignal

? 技术分享图片

同理卸载同机器的第二个节点。

? 技术分享图片

2、复制分布式节点的数据

使用WinSCP连接到目标服务器

? 技术分享图片

将/home/allspark/clcikhouse/data/sgdatabase下面的historysignal和historysignal_Distributed复制到左边。

? 技术分享图片

将/home/allspark/clcikhouse2/data/sgdatabase下面的historysignal和historysignal_Distributed复制到左边。

? 技术分享图片

3、导出zookeeper节点上的数据

打开ZKUI,一般在本地的9090端口,使用浏览器打开

? 技术分享图片

输入默认账号密码 admin/manager

登录后,进去这个页面,先确认有几个如图的分片节点。我们这里有两个。

? 技术分享图片

点开需要备份的表

? 技术分享图片

打开到如下图:

? 技术分享图片

选择需要备份的数据的对应的的IP地址,点击导出:

? 技术分享图片

保存到本机电脑,取一个名字。

? 技术分享图片

同理导出

? 技术分享图片

? 技术分享图片

4、还原本机卸载的数据

打开DBeaver 工具,连接到之前备份前的节点。

执行

attach table [DB].[TABLE]

例如:

attach table sgdatabase.historysignal

? 技术分享图片

其他节点同理执行:

? 技术分享图片

还原

  1. 新建ClickHouse数据库

使用SSH连接到新的电脑上。

参考《Docker中安装ClickHouse》文档来新建安装ClickHouse

新建数据库

使用DBeaver工具连接到新机器上的两个节点,

我这里是10.168.1.102:8123和10.168.1.102:8124

分别执行以下代码创建数据库

CREATE DATABASE IF NOT EXISTS sgdatabase;

? 技术分享图片

? 技术分享图片

创建数据表格。

在提供的SQL中找到你需要备份数据的表的表结构SQL。

复制到工具中执行。一个复制表一个分布式表

? 技术分享图片

2、复制备份数据到新机器上

打开WinSCP工具,复制备份的文件到新的机器上。删除右边的,然后复制过去。

? 技术分享图片

第二个节点

? 技术分享图片

  1. 导入zookeeper数据

打开之前导出的zookeeper数据,

? 技术分享图片

将其中的IP改为目标数据库的IP地址

? 技术分享图片

相同操作另外一个节点的数据修改:

? 技术分享图片

打开之前的10.168.1.10:9090的zkui

? 技术分享图片

? 技术分享图片

导入:

技术分享图片

? 技术分享图片

可以看到导入成功。

? 技术分享图片

同理操作

? 技术分享图片

? 技术分享图片

5、修改分布式表的配置

如果不是新机器还原数据,就不需要做这一步操作。

修改10.168.1.102机器上面

/home/allspark/clickhouse-server/metrika.xml

/home/allspark/clickhouse-server2/metrika.xml

将分片1分片2中的旧机器IP改为新机器的IP地址。

zookeeper 的节点不变。

重启docker上的所有容器

docker restart $(docker ps -a)

修改10.168.1.101机器上面的

/home/allspark/clickhouse-server/metrika.xml

/home/allspark/clickhouse-server2/metrika.xml

将分片1分片2中的旧机器IP改为新机器的IP地址。

zookeeper 的节点不变。

重启docker上的所有容器

6、附加分布式节点到新节点上

DBeaver工具连接到新机器上的两个节点

执行

detach table [DB].[TABLE]

attach table [DB].[TABLE]

# 例如我的
detach table sgdatabase.historysignal

attach table sgdatabase.historysignal

ClickHouse冷备份与还原

原文:https://www.cnblogs.com/hanfan/p/12867258.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!