暂无图片
暂无图片
6
暂无图片
暂无图片
5
暂无图片

GoldenDB数据库集群版本升级

Whill 2025-02-25
97

管理平台升级

升级流程

  • 升级前准备

    1. 检查升级总控脚本所在服务器是否安装 requests-toolbelt ,没有需要安装

    2. 检查升级总控脚本所在服务器是否安装 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 获取。

    1. 检查 rdb 里 sloth.machine_room_ip_info 中是否有数据,如果没有或不正确,手动插入或修改。

    2. 上传产品包与升级工具

      • 用高权用户上传 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 环境的各个同步节点机器。

  • 组件升级

    环境检查完成,根据需要进行一键升级或者单独升级(全量任务阶段不允许进行升级)

    下面是组件升级流程原理说明:

    1. 组件包分发完毕,解压各个组件的 zip 包。

    2. 升级当前 Sloth 环境的空闲组件。先获取当前环境的所有空闲组件,判断组件状态是否是运行中,SlothManager 会下发 dbmoni -stop 指令给运行中的组件。空闲组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为升级包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -star t命令尝试拉起组件,若组件无法正常启动(升级包组件有问题)则返回升级失败。

    3. 升级当前 Sloth 环境的绑定任务的组件。空闲组件升级完成后,将会升级绑定任务的组件。判断当前环境是否有组件可切换。

      • 有空闲组件可切换。由于空闲组件是已经被升级后且能正常运行的组件,则进行组件切换,切换完成后将被切换的组件进行升级:下发 dbmoni -stop –> getModuleState –> 替换原有组件的 bin、driverLib、etc、lib目录为升级包的内容 –> dbmoni -start。

      • 无空闲组件可切换。优停任务,下发 dbmoni -stop 指令给当前的组件。组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为升级包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常 启动(升级包组件有问题)则返回升级失败。组件正常启动则等待采集、回放、比对三个线程升级完成。将任务状态由优停恢复为运行中。

    4. 当前环境中所有组件升级完成后,更新当前 Sloth 的版本号为升级后版本号。

  • 升级完成,页面如下图:

回滚流程

  • 升级备份原组件压缩包解压
  • 组件回滚
    1. 回滚当前 Sloth 环境的空闲组件。先获取当前环境的所有空闲组件,判断组件状态是否是运行中,SlothManager 会下发 dbmoni -stop 指令给运行中的组件。空闲组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常启动(回滚包组件有问题)则返回回滚失败。

    2. 回滚当前 Sloth 环境的绑定任务的组件。空闲组件回滚完成后,将会回滚绑定任务的组件。判断当前环境是否有组件可切换。

      • 有空闲组件可切换。由于空闲组件是已经被回滚后且能正常运行的组件,则进行组件切换,切换完成后将被切换的组件进行回滚:下发 dbmoni -stop –> getModuleState –> 替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容 –> dbmoni -start。

      • 无空闲组件可切换。优停任务,下发 dbmoni -stop 指令给当前的组件。组件为停止状态后,将会替换原有组件的 bin、driverLib、etc、lib 目录为回滚包的内容。替换完之后 SlothManager 会给组件下发 dbmoni -start 命令尝试拉起组件,若组件无法正常启动(回滚包组件有问题)则返回回滚失败。组件正常启动则等待采集、回放、比对三个线程回滚完成。将任务状态由优停恢复为运行中。

    3. 当前环境中所有组件回滚完成后,更新当前 Sloth 的版本号为回滚后版本号。

使用限制

组件升级只支持上传版本大于等于当前系统版本的 Sloth 产品包(new package T_version >= current T_version);组件回滚只允许从被升级版本回滚到升级前的版本,不支持回滚到本次升级之前的历史版本(比如 T3 升级到 T4 ,只支持回滚到 T3 ,不支持回滚到 T3 之前的版本)。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

筱悦星辰
暂无图片
29天前
评论
暂无图片 0
二月二,龙抬头 一切都是好兆头 愿我们珍惜每个今天 昂首笃定地迈出步伐 不负自己,不负春光
29天前
暂无图片 点赞
评论
咚咚
暂无图片
1月前
评论
暂无图片 0
GoldenDB数据库集群版本升级,GoldenDB数据库集群版本升级
1月前
暂无图片 点赞
评论
淡定
暂无图片
1月前
评论
暂无图片 0
GoldenDB数据库集群版本升级,GoldenDB数据库集群版本升级
1月前
暂无图片 点赞
评论
听溪
暂无图片
1月前
评论
暂无图片 0
GoldenDB数据库集群版本升级
1月前
暂无图片 点赞
评论
鲁鲁
暂无图片
1月前
评论
暂无图片 0
GoldenDB数据库集群版本升级,GoldenDB数据库集群版本升级
1月前
暂无图片 点赞
评论