闲聊
上章提到clickhouse版本更新迭代较快,bug较多。
以上篇文章20.8为例
项目中有用到clickhouse20.8来实时同步mysql8.13的数据,但是同步过去的表正常查询数据 插入数据都没有问题,遇到复杂查询(嵌套,运算,聚合)就会报错,在网上找了好多方法,最后才发现是clickhouse版本的问题,clickhouse官网文档在新的版本也有修复。
类似这一个sql,好像也不支持用in来嵌套
1 |
SELECT |
1 |
centos7836 :) select * from data_dataTransfer_ch_test.t_task_check_field_data; |
然后就将我的clickhouse进行了升级,以下是操作
clickhouse升级最新版21.6.6
以我们项目为例,整理下ClickHouse升级的相关注意事项,由于鄙人学识浅薄,提供的方式方法仅供大家参考,引起的任何问题,本人不承担任何责任。安全生产第一条:记得备份、记得备份、记得备份,重要的事情说三遍。
我们ClickHouse是通过RPM方式来安装的,包括如下三个文件:
1 |
[root@k8s-master repo]# ll |
备份
1、备份配置文件
路径为:/etc/clickhouse-server,把这个文件夹下面都备份吧,正常安装新版本,clickhouse会自动将之前的配置文件config.xml备份,命名为:config.xml.rpmsave。不过小心使得万年船。
2、备份数据文件
数据文件的路径是在config.xml中进行配置的,我们配置指向一块单独的盘。
总而言之,言而总之,把整个数据文件备份吧。
卸载旧版本
1、查看目前安装版本
yum list installed | grep clickhouse
2、删除软件版本
yum remove -y clickhouse-common-static
yum remove -y clickhouse-server-common
安装新版本
rpm包下载地址:https://repo.clickhouse.tech/rpm/stable/x86_64/
下载完成之后直接
1 |
rpm -ivh *.rpm |
安装成功后,会在/etc/clickhouse-server下生产相应的配置文件。
按照旧的config.xml配置信息,更改config.xml。也可先直接覆盖,如果后续不成功,还是一条一条来修改,最好比对下。防止有小版本差异。
新版本clickhouse由systemd控制
重启服务验证功能
1 |
systemctl start clickhouse-server |