版本升级
简述
本文档主要介绍在 Linux/MacOS 操作系统下,已经安装 CloudCanal docker 版用户如何升级 CloudCanal 新版本。
如果您从未安装过 CloudCanal , 请参考 全新安装 文档 CloudCanal docker 版安装( Linux/MacOS)
升级步骤
1. 下载最新安装包
- 登录官方网站点击立即使用按钮
- 点击弹窗中的下载私有部署版按钮
2. 解压缩新安装包
- 在相同目录下解压覆盖原来的文件
- 7z x cloudcanal.7z -o./cloudcanal_home
3. 控制台 DDL 变更
检查解压目录下 ddl_history.sql 文件,确认当前使用版本和升级版本是否存在元数据库 (cloudcanal_console) 变更
在 docker 宿主机上执行执行命令登录元数据库(cloudcanal_console) , 执行相关 sql 进行变更
mysql -uclougence -h127.0.0.1 -P25000 -p123456
举个例子
PS:服务版本从2.3.1.0版本之后的升级需要登录到cloudcanal-mysql容器中将当前mysql的数据dump出来备用
docker exec -it cloudcanal-mysql /bin/bash
mysqldump -uclougence -p123456 --single-transaction -R -E --databases cloudcanal_console >/tmp/cloudcanal_console.sql退出容器然后把dump出来的文件copy到宿主机
docker cp cloudcanal-mysql:/tmp/cloudcanal_console.sql .
4. 备份容器数据(可选)
升级会重建 console 和 sidecar 的 volume ,容器内部的配置和日志会丢失
Mac OS 和 Windows 请手动备份容器内需要的日志和配置数据
执行 scripts 目录下脚本备份配置和日志数据
- 备份后的内容存放在 …/scripts/console_backup 和 …/scripts/sidecar_task_backup 两个目录中。
容器重要配置和日志路径
### console容器内配置和日志路径
/home/clougence/cloudcanal/console/conf
/home/clougence/logs
### sidecar容器内配置和日志路径
/home/clougence/cloudcanal/sidecar/conf
/home/clougence/logs
5.修改console配置文件
在版本2.2.6.12之后新增了自定义告警接口,在配置文件处需要新增如下配置
console.config.alert.custom.alerturl=
6. 关闭旧版本容器(运行中)
./stop.sh
7. 更新到新版本容器
./upgrade.sh
PS:其中服务从2.3.0.11(包含)之前的版本,升级到2.3.1.0(及以后的版本)升级,需要先执行uninstall.sh,然后执行install.sh
当前版本是2.3.0.10(包含)之前的版本,现在需要升级到2.3.0.11,直接执行upgrade.sh即可
当前版本是2.3.0.11(包含)之前的版本,现在需要升级到2.3.1.0(及以后的版本),则需要执行uninstall.sh,然后执行install.sh
当前版本是2.3.1.7(包含)之后的版本,现在需要升级到2.3.1.10(及以后的版本),直接执行upgrade.sh
./uninstall.sh
./install.sh
将刚才copy出来的cloudcanal_console.sql文件cp到cloudcanal-mysql容器,进到cloudcanal-mysql容器中恢复刚才的mysql文件
docker cp ./cloudcanal_console.sql cloudcanal-mysql:/tmp
docker exec -it cloudcanal-mysql /bin/bash
mysql -uclougence -p123456
mysql> drop database cloudcanal_console;
Query OK, 59 rows affected (0.17 sec)
mysql> source /tmp/cloudcanal_console.sql;
mysql> exit
exit
重启一下整个服务
./restart.sh
8. 确认已经升级到新版本
docker ps | grep cloudcanal
常见问题
升级后重新激活失败的常见处理方式
- 有些老版本升级到最新版本CloudCanal重新获取最新的激活码会激活失败,这主要是许可证对于老版本CloudCanal的兼容性缺陷。可以清空CloudCanal源数据中的auth_code_info表再重新激活即可正常激活。执行SQL如下:
truncate table `cloudcanal_console`.`auth_code_info`;
- 升级后为系统变成未激活状态,从Clougence官网重新申请新的授权码进行激活即可。