clickhouse节点重做(节点替换)

测试验证环境:

docker容器化部署的4节点2分片和2副本(centos7+clickhouse22.1.3)

172.17.0.6 clickhouse01
172.17.0.7 clickhouse02
172.17.0.8 clickhouse03

172.17.0.9 clickhouse04(故障节点)
172.17.0.10 clickhouse04 (替换节点)

节点重做

一般情况,节点操作系统重装或者硬盘故障节点重做处理情况

一般都是两副本以上的集群,所以可以直接同步另一个副本节点的配置,拷贝过来,节点正常安装服务进程

需要的拷贝的东西有一下几点:

1、配置文件(config.xml、users.xml),需要调整config.xml的配置文件,修改macros中的replica改成当前节点

2、鉴权目录access

3、数据的映射目录data(里面的软连接目录可以忽略不用管)

4、元数据目录metadata

5、实际的建表目录,这个需要查到metadata下面的数据库对应的软连接目录给打包到新节点

 将上面的三个目录打成压缩包,拷贝到重做节点,注意要是打包,不然软连接会不存在,变成一个目录了,这个没有给连接到数据目录等等的问题

比较复杂的是第五步的操作,一般情况下这个是作为一个数仓的存储,创建的数据库也不会很多,我们这边的生产环境一般是7个数据库,所以也就是拷贝store目录下的7个目录既即可,将他拷贝到重做节点的store目录下就可以了,启动之后,节点会检测当前几点与副本之前的区别,是空的节点会直接同步副本中的数据,但是这一步会很耗资源,需要挑一个合适的时间点来做

做好这些,启动重做节点的clickhouse服务,查看启动服务是否有报错,没有报错的话就可以登录节点查一下数据情况了,并且可以查看用户和授权情况有没有正常,然后测试数据写入和读取情况

节点故障替换

几点替换操作可跟上面的操作一样,但是集群需要使用的域名映射的方式部署的,也就是不能通过ip来做的,如果是节点ip做的话,zookeeper元数据上的replicas下没法对应 上,可能会有其他的问题,应该也可以通过命令来修复zookeeper的元数据

system restore replica default.st_order_mt_local on cluster two_shard_two_replica

这个是我的这个表元数据不在zookeeper上的,执行完成后查看zookeeper上就能查到这个元数据了

 

个人的见解说明,如有不足请指正

一般clickhouse节点的目录都如下

 access这个是跟权限相关,数据库的和用户的授权关系,用户的创建语句都在这个下面,如果只是数据盘故障重做的,这个可以去相同分片节点去拷贝过来,这样节点重启的时候,就可以得到原来集群的授权关系和用户信息

 data这个目录是实际数据存储目录,各个表的软连接,全部都是连接到store目录下,实际的数据存储目录是store下,可以用备用节点去查看备用节点的软连接关系,这里可以只创建软连接地址,实际的数据不需要管,启动之后会从副本中去同步数据

 

热门相关:法医萌妻,撩上瘾!   仙府之缘   韩娱之影帝   覆汉   韩娱之影帝