ClickHouse RPM不停机升级/降级

本文档详细介绍了如何从ClickHouse 20.3.18.10版本平滑升级到21.3.4.25版本,包括数据备份、升级步骤和降级方案。在升级过程中,强调了对配置、元数据和数据的备份策略,以及不停机升级的重要性。同时,提供了升级验证和可能出现的问题处理方法,确保在遇到问题时能够顺利降级回旧版本。
摘要由CSDN通过智能技术生成

背景

Clickhouse 20.3.18.10 升级到 21.3.4.25版本
目的:该三月份发布的版本支持了更多通用的开窗函数,后续会介绍

升级流程

数据备份

对于没有使用每个shard多副本的集群,并且数据表并非全部都是copy表的情况,我们在做升级的时候就需要考虑自己去做备份了,需要备份的数据有这么几种:

1、配置(建议所有集群情况均备份,因为数据量很小):升级之前建议备份clickhouse相关的一些配置文件,默认是在/etc/clickhouse目录下的所有文件(不同环境若有不同请自行确认,总之要备份好旧配置)

命令:
sudo cp -r /etc/clickhouse-server /etc/clickhouse-server-bk
sudo cp -r /etc/clickhouse-client /etc/clickhouse-client-bk

2、元数据(建议所有集群情况均备份,因为数据量很小):默认config.xml配置(具体看真实配置) /var/lib/clickhouse/metadata 下存储了元数据,可以很方便的使用物理copy的方式进行

命令:
cp -rf metadata metadata_bk

3、详细数据(视情况而定,数据量大与小的区别):默认config.xml配置(具体看真实配置) /var/lib/clickhouse/data 下存储了具体的真正数据,该目录的结构是database下是table, table下是更细粒度的partition, 若该数据并不大且使用物理copy的方式系统磁盘容量可以满足copy后的存储大小,那么建议采用物理copy(注意:在做物理copy前请systemctl stop clickhouse-server 防止数据的写入,因为在copy的过程写入数据可能会导致数据损坏)

4、若数据非常庞大,本地磁盘无法容纳备份后的数据,那么建议采用clickhouse-copier工具将本集群的数据copy到其他容灾集群做容灾备份;
经过测试:升级过程中数据目录Clickhuse都是向上兼容的,不会更改删除数据目录,不会报错。直接升级即可,心大的可不备份

升级步骤

根据配置,每个shard有多个replicas副本,那么每个shard的升级需要逐个replica进行,其中一个replica确保升级成功后,我们才能继续下一个replica的升级操作,就这样逐个的升级确保整个集群的升级成功。(这样做的前提是clickhouse集群所有的表均使用的是copy表),不停机情况下确保单节点单节点的停止升级,另外一个保证可用

1、停止实例

停掉某个replica实例上的clickhouse-server:

sudo /etc/init.d/clickhouse-server stop
systemctl stop clickhouse-server

2、将需要升级到RPM包都放到一个文件夹下

RPM包下载地址(官网版本较新):
https://repo.clickhouse.tech/rpm/stable/x86_64
执行命令(一般不会报错,直接升级成功)

yum upgrade *.rpm -y

3、验证是否安装成功

  1. 启动新版clickhouse-server:systemctl start clickhouse-server
  2. 查看是否启动成功:systemctl status clickhouse-server
  3. 查看clickhouse相关日志有无明显报错信息,clickhouse相关日志的位置我们需要查看config.xml文件的配置,这边可以看到升级版本还是指向的之前的历史配置文件(默认配置日志路径:/var/log/clickhouse-server/clickhouse-server.log)
  4. 运行clickhouse-client,进入交互终端后确认版本信息,执行:select version()
    备注:如一开始连接失败,则执行systemctl restart clickhouse-server几次该命令即可

降级步骤

若升级过程中出现严重问题,无法规避,那我们需要做降级操作,降级所需的所有rpm包文件我们需要放到单独的(downgrade)文件夹,进入文件夹执行:
systemctl stop clickhouse-server

yum downgrade *.rpm -y

systemctl start clickhouse-server (若出现数据损坏无法启动的情况,需要查看日志分析具体原因,分析具体损坏的文件)

备注:如由于内网原因或者其他配置原因导致该降级过程无法实施,请参照以下做法(经过测试)
1、yum list installed ‘clickhouse*’ 查看安装的ClickhouseRPM版本
2、yum -y remove … 卸载当前升级的版本
3、sudo yum -y localinstall clickhouse-*.rpm 重新安装历史版本
4、将历史配置文件重新覆盖当前安装目录,由于历史data目录不会更改且元数据都向上兼容,直接配置指向数据目录即可
5、sudo /etc/init.d/clickhouse-server start 启动
6、clickhouse-client --port 9000 确认是否成功、数据是否缺失即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值