Clickhouse集群版本升级方案及降级方案(实操)

升级背景
运行中的clickhouse版本为23.3.2.37,在对接新的业务过程中,发现新版本的可刷新物化视图等功能,因此在团队讨论后,基于功能需要决定进行版本升级,升级到25.3.3.42。
系统架构
操作系统:redhat 6.5 集群节点:6个 备份节点:2个 keeper节点:4个
准备工作
1. 下载升级版本的安装包
lts:packages.clickhouse.com/tgz/lts/
stable:packages.clickhouse.com/tgz/stable/
我们选择的是LTS版本的安装包
找到以下文件,并下载
2. 将安装包上传提前到每台服务器
3. 备份配置文件
提前将每台服务器上的/etc/clickhouse-server的配置文件进行备份,防止升级过程出现意外(虽然不会被覆盖)。我们采取的svn进行版本管理,这个在安装升级包后,进行配置文件的修改对比非常方便。
4.提前修改好每台服务器上的配置文件
因为我们的个性配置都是在另外的metrika.xml文件,在config.xml文件进行引入。因此可以只需要修改对比一份新的config.xml文件,然后覆盖其他的即可。 实际测试环境安装时,修改配置文件是一件麻烦事,因此建议生产环境升级,提前修改好,可以省去甚多时间
升级过程
是否需要停止全部的clickhosue服务,再进行安装升级呢?
答案是不需要的。根据和同事的沟通了解,升级是可以再停止全部数据写入后,直接安装升级包后,在不重启服务的情况下,clickhouse数据库仍旧使用旧版本提供数据查询。重启服务,重启过程中,clickhouse会停止服务,重启后使用旧的配置继续运行,影响时间为重启的时间。
测试降级版本必须先停止服务,再安装(需要先卸载新版本,再安装旧版本,不然安装失败,是否必须停止好像也不确定了。)
1.暂停所有的数据写入
升级前,需要将所有的写入都停止,避免升级过程中、服务重启中导致数据写入失败,或者其他异常
2.安装升级文件
进入安装包文件,执行下面的升级命令
3.重启服务
4.逐台修改配置文件
将修改后的配置文件上传到clickhouse-server对应位置(上传后,自动使用新的配置文件运行)
5、配置文件赋权
可能出现文件权限问题导致报错
6.查看日志
升级后测试方案
1.测试各节点连接是否正常
2.测试每台数据库的连接、数据查询、更新、删除等
升级后进行测试,主要是看版本号是否升级了、增删改查是否正常、可刷新物化视图等功能,因此执行下面的命令(根据自己的测试需求编写)
3.检查应用程序的接口调用是否正常
以上测试没问题了,就可以恢复数据写入
回退降级方案
回退条件:
1、升级过程中出现无法解决问题
2、测试过程中出现影响使用的问题
回退操作(我是先停止服务,再安装的,或许可以不停止服务执行,请自己测试)
1、卸载已经安装的程序文件(验证过无法直接安装旧版,会提示有更新的版本)
2、安装当前版本( 23.3.2.37)的程序文件,并上传备份的配置文件
3、重启clickhouse服务,检查日志
4、检查增删改查操作是否正常
5、检查应用接口调用是否正常
6、恢复数据写入