clickhouse21.7.4.18升级至24.8.8.17
升级包下载地址:
https://packages.clickhouse.com/tgz/stable/
1、虚表、视图处理
升级前需要把engine为Kafka、Distributed、MaterializedView的虚表、视图备份,然后删掉,否则升级后启动会出现kafka相关表、视图报错
(1)查询以上类型的虚表、视图
SELECT * FROM system.tables where engine='Kafka' or engine='Distributed' or engine='MaterializedView';
(2)将查询出来的结果导出为csv文件,目的是为了备份虚表、视图的结构
(3)删除虚表、视图
drop table table1;
drop view view1;
2、停止clickhouse集群
3、停止zookeeper,将zookeeper数据快照转换为keeper格式
(1)停止所有 ZooKeeper 节点(先停止所有flower节点,最后停止leader节点)。
(2)可选,但推荐:找到 ZooKeeper 领导节点,再次启动和停止它。它将强制 ZooKeeper 创建一致的快照。
(3)在 leader 节点上运行,例如:
clickhouse-keeper-converter
clickhouse-keeper-converter --zookeeper-logs-dir /var/lib/zookeeper/version-2 --zookeeper-snapshots-dir /var/lib/zookeeper/version-2 --output-dir /path/to/clickhouse/keeper/snapshots
上面转换后的快照文件,拷贝至clickhouse-keeper配置文件中的snapshot_storage_path目录下
/var/lib/clickhouse/coordination/snapshots
4、下载安装包进行升级
clickhouse-client-24.8.8.17、
clickhouse-common-static-24.8.8.17、
clickhouse-server-24.8.8.17、
clickhouse-keeper-24.8.8.17(如果单独服务器部署keeper,则需要下载此包)
升级顺序:common-static、client、server
如果是rpm包,直接安装即可
rpm -Uvh clickhouse-common-static-24.8.8.17.x86_64.rpm clickhouse-client-24.8.8.17.x86_64.rpm clickhouse-server-24.8.8.17.x86_64.rpm
5、clickhouse-keeper配置文件修改、启动(keeper_config.xml)
0.0.0.0
9181
1
/var/lib/clickhouse/coordination/logs
/var/lib/clickhouse/coordination/snapshots
10000
10000
100000
information
false
true
1
192.168.3.112
9234
2
192.168.3.113
9234
3
192.168.3.114
9234
每个节点server_id不一样。
clickhouse-keeper启动
clickhouse-keeper --config /etc/your_path_to_config/keeper_config.xml
6、clickhouse-server配置文件修改、启动(config.xml)
#关键部分
#关键部分
trace
/var/log/clickhouse-server/clickhouse-server.log
/var/log/clickhouse-server/clickhouse-server.err.log
8123
9300
9004
9005
9009
0.0.0.0
/data/clickhouse/shard4-replica1/data/</path
/data/clickhouse/shard4-replica1/user_files/
users.xml
/data/clickhouse/shard4-replica1/access/
192.168.3.112
9001
default
123123
192.168.3.113
9000
default
123123
192.168.3.113
9001
default
123123
192.168.3.114
9000
default
123123
192.168.3.114
9001
default
123123
1192.168.3.112
9000
default
123123
01
spark112-01-1
192.168.3.112
9181
192.168.3.113
9181
192.168.3.114
9181
每个节点path、shard、node地址不同,根据自己实际地址进行修改
启动所有节点clickhouse-server
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
7、将engine为Kafka、Distributed、MaterializedView的虚表、视图进行还原
通过升级前的备份,将这些虚表、视图重新创建
升级要点:
1、升级前备份所有节点配置文件
2、升级顺序
clickhouse-client-24.8.8.17、
clickhouse-common-static-24.8.8.17、
clickhouse-server-24.8.8.17(24版本server执行程序集成了keeper)
3、clickhouse-server、clickhouse-keeper配置监听
0.0.0.0
4、
clickhouse-keeper-24.8.8.17,独立的服务器部署keeper,则需要下载此包,如果clickhouse-keeper和clickhouse-server在一台服务器上,就不需要安装keeper包了,如果安装了会导致clickhouse-keeper执行程序把clickhouse-server的执行程序覆盖掉,尤其是最后安装的clickhouse-keeper包,会导致后面clickhouse-server启动时出现:DB::Exception: Keeper configuration(
/usr/bin/clickhouse
/usr/bin/clickhouse-benchmark -> /usr/bin/clickhouse
/usr/bin/clickhouse-client -> /usr/bin/clickhouse
/usr/bin/clickhouse-compressor -> /usr/bin/clickhouse
/usr/bin/clickhouse-disks -> /usr/bin/clickhouse
/usr/bin/clickhouse-extract-from-config -> /usr/bin/clickhouse
/usr/bin/clickhouse-format -> /usr/bin/clickhouse
usr/bin/clickhouse-git-import -> /usr/bin/clickhouse
/usr/bin/clickhouse-keeper -> /usr/bin/clickhouse
/usr/bin/clickhouse-keeper-client -> clickhouse
/usr/bin/clickhouse-keeper-converter -> /usr/bin/clickhouse
/usr/bin/clickhouse-local -> /usr/bin/clickhouse
/usr/bin/clickhouse-obfuscator -> /usr/bin/clickhouse
/usr/bin/clickhouse-server -> /usr/bin/clickhouse
通过查看所有程序都是软连接到/usr/bin/clickhouse的,所以如果最后安装了clickhouse-keeper,会导致clickhouse被覆盖,也就是说只有keeper的功能,其他功能都是不支持的。
5、clickhouse-server 修改参数(async_load_databases=false)
false
6、定义各节点宏
#此处的replica名字千万不要修改,原来是什么还是什么,修改后,会导致物理表找不到数据存储路径
01
spark112-01-1
一定要注意升级要点!!!