一键升级

使用WeBASE一键升级脚本

在WeBASE v1.5.0后,WeBASE将提供webase-upgrade.sh脚本(位于webase-deploy目录中,与common.properties文件同级目录)

升级步骤说明

升级期间,脚本将暂停节点与WeBASE所有服务,替换WeBASE安装包(不会更新节点)、替换配置文件、更新数据库的数据表(并备份原数据)

  • 确保common.properties中配置的数据库配置正确;若已经通过该配置成功完成了一键部署,即不用修改
  • 需要确保WeBASE一键部署的文件目录未重命名(如webase-front)
  • 需要连接外网下载WeBASE新版本的升级脚本与安装包
  • 若升级脚本报错中断后,备份的各子服务文件存放在以旧版本号命名的目录,如./v1.4.3目录中
  • 暂未支持WeBASE可视化部署的自动升级,未支持跨版本升级

检测依赖

# 脚本依赖python3命令,dos2unix命令,curl命令,unzip命令,mysqldump命令,mysql命令
# 检查python3
$ python3 --version
Python 3.6.8
# 检查dos2unix
$ dos2unix -V
dos2unix 6.0.3
# 检查curl命令
$ curl -V
curl 7.29.0
$ mysql -V
mysql  Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1
$ mysqldump -V
mysqldump  Ver 10.14 Distrib 5.5.65-MariaDB, for Linux (x86_64)
$ unzip -v
UnZip 6.00 of 20 April 2009, by Info-ZIP. 

执行升级脚本

运行脚本,通过-o {oldVersion}指定当前版本,通过-n {newVersion}指定新版本,脚本将自动完成升级步骤

  • 当前只支持升级相邻的版本,可以参考ChangeLOG查看版本信息
## 指定-o旧版本,-n新版本后,即可运行
# bash webase-upgrade.sh -o {old_webase_version} -n {new_webase-version}
$ bash webase-upgrade.sh -o v1.4.3 -n v1.5.0

## 下面简单阐述升级脚本的操作内容
################################################
# 下载新的webase安装包(zip包),已存在旧版本的zip包,则重命名为webase-XXX-{old_version}

# 解压新的zip包到webase-front.zip => webase-front-v1.5.0

# 停止原有的,python3 deploy.py stopAll

## 复制旧版本的自服务的配置文件到新版本目录
# webase-web 直接复制全部
# 复制已有front的conf/*.yml, *.key, *.crt, *.so,覆盖新front的文件
# 复制已有sign的conf/*.yml
# 复制已有node-mgr已有的conf的*.yml,conf/log目录

## 备份node-manager db
# 备份node-mgr数据库到webase-node-mgr/script/backup_node_mgr_{old_version}.sql
# 从common.properties中获取两个数据库密码
# 到node-mgr中检测script/upgrade目录,有匹配v143开头的,v150的结尾的,有则执行 mysql  -e "source $sql_file"
# 更新数据表 执行webase-node-mgr-{new_version}/script/upgrade/v{old_version}_v{new_version}.sql

# 到sign...同上(当前版本无需升级数据库)

## 将旧版本的webase-XXX备份到当前目录的{old_version}目录,新版本的webase-XXX-{new_version}重命名为webase-XXX
# mv操作,备份已有的,如 webase-web => ./v1.4.3/webase-web 以及 webase-web-v1.5.0 => webase-web

## 更新各java服务的yml的版本号

# 启动新的,执行python3 deploy.py startAll
################################################

若升级失败,,只需要将当前目录升级中的webase子系统目录移除,并将旧版本目录的文件夹复制到当前目录,如v1.4.3,并重启WeBASE即可

以v1.4.3升级到v1.5.0为例,具体步骤如下:

  • 查看当前目录的升级中的webase安装包:ls .
  • 查看已备份的webase安装包:ls ./v1.4.3
  • 首先将当前目录中已存在的webase-{subsystem}安装包移除:如移除当前目录的所有webase安装包,rm -rf webase-*
  • 复制旧版本目录中的到当前目录:cp -rf ./v1.4.3/* .
  • 重启 python3 deploy.py startAll

子系统升级

WeBASE子系统升级需要参考WeBASE releases中WeBASE子系统间的兼容性说明,若只升级某个子系统,则需要查看子系统的Changelog,检查是否与已有的其他子系统兼容

切记复制备份已有的子服务项目文件,便于恢复,下面介绍各个服务的升级步骤

WeBASE-Front升级

  1. 备份已有文件或数据,下载新的安装包(可参考安装包下载
  2. 采用新的安装包,并将旧版本yml已有配置添加到新版本yml中;可通过diff aFile bFile命令对比新旧yml的差异
  3. bash stop.sh && bash start.sh重启

WeBASE-Node-Manager升级

  1. 备份已有文件或数据,下载新的安装包(可参考安装包下载
  2. 使用新的安装包,并将旧版本yml已有配置添加到新版本yml中;可通过diff aFile bFile命令对比新旧yml的差异
  3. 查看节点管理服务升级文档中对应版本是否需要修改数据表,若不需要升级则跳过 3.1 若需要升级数据表,首先使用mysqldump命令备份数据库 3.2 按照升级文档指引,操作数据表
  4. bash stop.sh && bash start.sh重启

WeBASE-Web升级

  1. 备份已有文件或数据,下载新的安装包(可参考安装包下载
  2. 采用新的安装包,替换旧的webase-web目录,无需重启nginx

WeBASE-Sign升级

  1. 备份已有文件或数据,下载新的安装包(可参考安装包下载
  2. 使用新的安装包,并将旧版本yml已有配置添加到新版本yml中;可通过diff aFile bFile命令对比新旧yml的差异
  3. 查看签名服务升级文档中对应版本是否需要修改数据表,若不需要升级则跳过 3.1 若需要升级数据表,首先使用mysqldump命令备份数据库 3.2 按照升级文档指引,操作数据表
  4. bash stop.sh && bash start.sh重启

节点升级

FISCO-BCOS节点的升级的详情需要参考FISCO-BCOS 版本信息文档

  • 兼容升级 :直接替换 旧版本 的节点二进制文件为 新版本 的节点二进制文件,并重启。此方法无法启用节点新特性
  • 全面升级 :参考 安装FISCO-BCOS 搭建新链,重新向新节点提交所有历史交易