管理平台升级
升级流程
升级前准备
检查升级总控脚本所在服务器是否安装 requests-toolbelt ,没有需要安装
检查升级总控脚本所在服务器是否安装 paramiko ,没有需要安装
检测方法:
python from requests_toolbelt import MultipartEncoder import paramiko
复制包安装命令如下
tar zxvf *.tar.gz python setup.py install
复制
如没有安装包, 请在下述产品包解压路径 ZXCLOUD-GoldenDB-SLOTHVxxx/autoInstall/fullDoseInstall/initialize/prepare_env 获取。
检查 rdb 里 sloth.machine_room_ip_info 中是否有数据,如果没有或不正确,手动插入或修改。
上传产品包与升级工具
用高权用户上传 ZXCLOUD-GoldenDB-SLOTHVxxx.zip 待升级产品包到任一管理节点某个目录下(示例 /home/OneInstall ),解压缩
cd /home/OneInstall unzip -q ZXCLOUD-GoldenDB-SLOTHVxxx.zip -d ZXCLOUD-GoldenDB-SLOTHVxxx cd ZXCLOUD-GoldenDB-SLOTHVxxx
复制用高权用户上传 upgrade_all.zip(该升级包从指定版本的升级文档中获取)至 上一步 中解压出来的目录(示例:/home/OneInstall/ZXCLOUD-GoldenDB-SLOTHVxxx/)。进入 ZXCLOUD-GoldenDB-SLOTHVxxx 目录,高权用户下解压upgrade_all.zip,生成 sloth_upgrade 目录,并通过 dos2unix 命令把脚本转测 linux 格式
if [ -d sloth_upgrade];then mv sloth_upgrade sloth_upgrade_bak;fi;unzip upgrade_all.zip; dos2unix sloth_upgrade/config/* dos2unix sloth_upgrade/upgradeScript/*
复制
升级工具包及解压出来的目录位置如图:
配置说明
升级的配置文件在 ZXCLOUD-GoldenDB-SLOTHVxxx/sloth_upgrade/config/upgrade_custom.json 控制升级或回退流程。升级工具实现了自动编排升级流程,自动从 RDB 获取元数据、升级服务器的信息。目前仍有少部分配置项需要人工确认并配置。需配置的配置项如下:
配置项名
配置项说明
示例
如何获取配置值
sql|sql_catalog_name
配置内容为起始版本_目标版本,创建升级目录、备份目录时使用此配置项。如果本环境多次升级过,请不要配置同一个值。
721T41_721SP2T5
根据配置项说明和示例填写相应的值。
sql|sql_upgrade_version
升级sql
721T41_721SP2T5
请从该配置项上面的注释中复制正确的字符串作为该配置项的值。本文档支持的升级sql起始_结束版本配置如下:721T41_721SP2T5
db|db_pre_version
升级前的RDB版本号
V_ALL-DBV6.1.03.04
从升级前RDB节点家目录中的bin目录下运行[./zsql_info -v]获取升级前版本号(rev前的内容即为版本号)。请根据命令获取实际值。下面列出的值供参考。V_ALL-DBV6.1.03.04
db|db_targ_version
升级后的RDB版本号
V_ALL-DBV6.1.03.04
V_ALL-DBV6.1.03.04,需要升级RDB版本时配置
sm_user
slothmanager安装用户
slothmanager
主管理节点执行ps -ef|grep slothmanager|grep -v grep|grep -v serverdbmonidamoni | awk -F ” ” ‘{print $1}’
bigdata|rest_port
InsightAgent端口
8021
slothmanager安装用户下,查看~/insightAgent/etc/agent_conf.yml中restPort配置项,获取当前环境下的InsightAgent端口。
slothmanager|sm_https_port
Slothmanager https端口
8444
slothmanager安装用户下,查看~/slothmanager/config/application.yml中配置项server:port,获取当前环境下的slothmanager https端口
执行升级脚本
注意:在升级期间不要对任务和组件进行操作。
以高权用户执行升级脚本:
cd ZXCLOUD-GoldenDB-SLOTHVxxx/sloth_upgrade/ python upgrade_control.py --upgrade_mode manager --execute_mode upgrade
复制
回滚流程
执行回退脚本
注意:在回退期间不要对任务和组件进行操作。
如果升级失败,需要回退。以高权用户执行如下步骤:
cd ZXCLOUD-GoldenDB-SLOTHVxxx/sloth_upgrade/ python upgrade_control.py --upgrade_mode manager --execute_mode rollback
复制
组件升级
通过 SlothManager 管理平台进行采集、回放和比对组件版本升级。

升级流程
产品包上传
如果服务器上不存在待升级的版本升级包,需要通过 SlothManager 页面上传升级版本的产品包至 SlothManager 主机。
如果服务器上已经存在了待升级的版本产品包,可以直接在页面上填写升级包全路径,点击路径校验后进行组件升级。
产品包解压
解压产品包获取产品包内的采集、回放和比对组件 zip 包。
产品包版本校验
校验当前 Sloth 版本号和升级产品包版本号,要求升级包版本 >= 当前 Sloth 版本。
环境检查(可选)
产品包校验完成后,可选择是否进行环境检查。
组件包分发
版本校验通过,开启三个线程将采集、回放、比对组件 zip 包分发给当前 Sloth 环境的各个同步节点机器。
组件升级
环境检查完成,根据需要进行一键升级或者单独升级(全量任务阶段不允许进行升级)
下面是组件升级流程原理说明:
组件包分发完毕,解压各个组件的 zip 包。
升级当前 Sloth 环境的空闲组件。先获取当前环境的所有空闲组件,判断组件状态是否是运行中,SlothManager 会下发 dbmoni -stop 指令给运行中的组件。空闲组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为升级包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -star t命令尝试拉起组件,若组件无法正常启动(升级包组件有问题)则返回升级失败。
升级当前 Sloth 环境的绑定任务的组件。空闲组件升级完成后,将会升级绑定任务的组件。判断当前环境是否有组件可切换。
有空闲组件可切换。由于空闲组件是已经被升级后且能正常运行的组件,则进行组件切换,切换完成后将被切换的组件进行升级:下发 dbmoni -stop –> getModuleState –> 替换原有组件的 bin、driverLib、etc、lib目录为升级包的内容 –> dbmoni -start。
无空闲组件可切换。优停任务,下发 dbmoni -stop 指令给当前的组件。组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为升级包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常 启动(升级包组件有问题)则返回升级失败。组件正常启动则等待采集、回放、比对三个线程升级完成。将任务状态由优停恢复为运行中。
当前环境中所有组件升级完成后,更新当前 Sloth 的版本号为升级后版本号。
升级完成,页面如下图:
回滚流程
- 升级备份原组件压缩包解压
- 组件回滚
回滚当前 Sloth 环境的空闲组件。先获取当前环境的所有空闲组件,判断组件状态是否是运行中,SlothManager 会下发 dbmoni -stop 指令给运行中的组件。空闲组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常启动(回滚包组件有问题)则返回回滚失败。
回滚当前 Sloth 环境的绑定任务的组件。空闲组件回滚完成后,将会回滚绑定任务的组件。判断当前环境是否有组件可切换。
有空闲组件可切换。由于空闲组件是已经被回滚后且能正常运行的组件,则进行组件切换,切换完成后将被切换的组件进行回滚:下发 dbmoni -stop –> getModuleState –> 替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容 –> dbmoni -start。
无空闲组件可切换。优停任务,下发 dbmoni -stop 指令给当前的组件。组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常启动(回滚包组件有问题)则返回回滚失败。组件正常启动则等待采集、回放、比对三个线程回滚完成。将任务状态由优停恢复为运行中。
当前环境中所有组件回滚完成后,更新当前 Sloth 的版本号为回滚后版本号。
使用限制
组件升级只支持上传版本大于等于当前系统版本的 Sloth 产品包(new package T_version >= current T_version);组件回滚只允许从被升级版本回滚到升级前的版本,不支持回滚到本次升级之前的历史版本(比如 T3 升级到 T4 ,只支持回滚到 T3 ,不支持回滚到 T3 之前的版本)。
评论




