GaussDB管理平台(TPOPS)从24.1.30至24.7.32升级实践
一、背景
为保障云数据库GaussDB业务的持续稳定运行,某省银行对其GaussDB管理平台(TPOPS)进行了版本升级。本次升级旨在解决历史版本中的已知问题,并引入新的功能特性。目标是将平台从 24.1.30 版本升级至 24.7.32 版本。
二、升级流程

升级流程示意图
三、升级流程说明
|
任务 |
预计耗时 |
|
升级前准备 |
60分钟 |
|
升级操作 |
120分钟 |
|
验证升级结果 |
20分钟 |
四、注意事项
在执行升级操作前,请务必确认以下事项,以避免因环境问题导致升级中断或失败:
·业务低峰期执行:为了减少升级对系统的影响,请尽量选择在业务量较低的时间窗口(如夜间或周末)进行升级操作。
·确保主机状态正常:升级过程依赖稳定的网络环境以向各主机分发软件包。请确保所有主机处于正常运行状态,且在升级过程中不能发生断电、断网或缩容等异常情况。
·禁止文件操作:升级脚本会检测各节点主机的特定文件状态,任何手动操作文件都可能干扰升级判断流程。因此,升级期间禁止在节点上进行除升级外的任何文件操作。
·禁止配置变更:在升级过程中,禁止进行任何业务配置更改操作。这包括但不限于角色、主机名、服务、template、网络、主机、hostcfg、证书、虚拟机及域名的配置变更或扩容。此类操作可能导致业务数据丢失或其他不可预知的错误。
·限制节点活动:升级期间,不允许在升级节点上进行除升级外的任何操作。
五、升级影响
|
类型 |
阶段 |
具体信息 |
严重程度 |
|
升级过程中对现行系统的影响 |
升级执行阶段 |
无影响。 |
无 |
|
|
升级完成阶段 |
无影响。 |
无 |
|
对业务的影响 |
- |
用户感受到大约20秒的停顿,期间云数据库GaussDB管理平台(TPOPS)业务不可用。 |
一般 |
|
对网络通信的影响 |
- |
无影响。 |
无 |
六、TPOPS升级步骤
当前仅支持微服务包、数据包、GaussDB实例安装包的升级以及docker-service包的自升级。
操作步骤以/data/docker-service目录为例,请在docker-service实际所在目录执行操作。
1.完整升级过程,预计耗时40分钟左右。
2.升级前置检查要求系统根目录(/)可用磁盘空间大于1GB,docker-service目录所在磁盘可用空间大于15GB,系统可用内存大于1GB,管理面节点之间的时间差小于30s。
3.升级至24.7.32版本后,Web端的访问地址为https://\{EIP}:8002/gaussdb/#/login,其中访问端口变更为8002端口。
4.如需支持IPv6登录,IPv6地址应配置在node1_ip、node2_ip、node3_ip对应网卡上,且地址范围为Global全局可见,请参考A.6 配置并启用IPv6(可选)章节进行升级节点的IPv6地址配置。
5.云数据库GaussDB管理平台升级完成后,已有实例的版本不会发生变化。
1.登录节点
以root用户登录待升级的云数据库GaussDB管理平台(TPOPS)的任一节点。
2.备份原安装包
执行以下命令,删除历史残留的升级目录。无历史残留的升级目录,可跳过该步骤。
mkdir /pkgsbak
cp -r /data/docker-service/pkgs/* /pkgsbak
3.创建升级目录
mkdir -p /data/docker-service/upgrade
4.解压新的docker-service
将新的docker-service包上传到升级目录(/data/docker-service/upgrade),并执行以下命令解压。
tar -xvf DBS-docker-service_24.7.32.202412312148.99528814_all.tar.gz
5.上传升级安装包
执行以下命令,进入待升级安装包的上传路径。
cd /data/docker-service/upgrade/docker-service/pkgs
只需上传待升级的安装包即可,全量安装包如下所示:
DBS-GaussDBConsole-Server_24.7.32.0.924990758866176.tar.gz
DBS-DBMind-Manual_24.7.32.0.20241227130310.tar.gz
DBS-GaussDB-Kernel_24.7.32.0.924990758866176.tar.gz
DBS-GaussDB-Server_24.7.32.0.926488844066816.tar.gz
DBS-MetaDB_Centralized_505.1.0.B026.20241225175735.tar.gz
DBS-GaussDB-driver_24.7.32.0.927365643668480.tar.gz
DBS-GaussDB-Kylin-Kernel_24.7.32.0.924990758866176.tar.gz
GaussDB_OS_PATCH_24.7.32.0.20241231204011.zip
DBS-Platform-Server_24.7.32.0.925928352459584.tar.gz
6.执行升级
执行以下命令,进入到升级脚本所在路径并执行升级命令。
cd /data/docker-service/upgrade/docker-service
sh appctl.sh upgrade_all
升级过程中禁止手动退出。
完整的升级过程大约40分钟。
回显出现如下信息时,说明升级完成。
Upgradation progress to 192.168.0.3 [/] ==> 100.00% Upgraded successfully to ip=192.168.0.3 all ips have completed upgrade Upload sftp packages done for 192.168.0.1
请登录「云数据库GaussDB管理平台-任务中心」查看安装包上传任务状态 Welcome to TPOPS: https://\{EIP}:8002/gaussdb/#/login EIP: Elastic IP address of any TPOPS node
七、GaussDB实例升级步骤
云数据库GaussDB管理平台(TPOPS)提供了灰度升级的方式,将数据库升级过程细分为“升级”和“提交”两个阶段。
· 升级待观察:此操作属于升级阶段。升级阶段滚动升级完成后,可对实例进行业务测试。每个主DN或者CN组件升级时,会有一次约10秒的业务中断。待所有分片升级完成且业务测试正常后,可以提交升级。
· 提交/回退:提交阶段可以根据测试情况选择“提交升级”或者“升级回退”。如果升级后业务异常,需要回退,可选择升级回退。
· 升级结束后会自动触发一次全量备份,并开启之前关闭的归档日志。
1.手工全备
在TPOPS管理平台界面进行手工全备

手工全备操作截图1

手工全备操作截图2

手工全备操作截图3
逻辑备份命令示例:
gs_dump -U root -W **** -f /var/chroot/home/nfs/4d755ddb-be65-4b49-9360-f08b7b11b5dc/gs_dump_backup/gzdb.dmp -p 8000 gzdb -F c
gs_dump -U root -W ****! -f /var/chroot/home/nfs/4d755ddb-be65-4b49-9360-f08b7b11b5dc/gs_dump_backup/gzdb_datateam.dmp -p 8000 gzdb_datateam -F c
gs_dump -U root -W **** -f /var/chroot/home/nfs/4d755ddb-be65-4b49-9360-f08b7b11b5dc/gs_dump_backup/gzdb_devteam.dmp -p 8000 gzdb_devteam -F c
gs_dump -U root -W **** -f /var/chroot/home/nfs/4d755ddb-be65-4b49-9360-f08b7b11b5dc/gs_dump_backup/gzdb_netteam.dmp -p 8000 gzdb_netteam -F c
2.备份参数文件
cp gaussdb.conf /var/chroot/home/nfs/4d755ddb-be65-4b49-9360-f08b7b11b5dc/gs_dump_backup
3.执行升级
步骤1 登录云数据库GaussDB管理平台(TPOPS)。
步骤2 单击左侧目录"实例管理",进入"实例列表"页面。
步骤3 选择待升级的实例,单击"更多 > 版本升级"。
步骤4 选择升级方式为"灰度升级",操作方式为"升级待观察",选择"升级可用区"以及目标版本。

选择灰度升级和升级待观察的界面截图
步骤5 输入"YES"字样并单击"确定"。
待全部AZ升级之后处于待观察阶段,可以提交升级。
步骤6 满足提交升级条件后,再次选择该实例,单击"更多 > 版本升级"。
步骤7 选择升级方式"灰度升级",操作方式"提交升级"以及目标版本。
步骤8 输入"YES"字样并单击"确定",提交升级。

提交升级操作界面截图
八、TPOPS升级回退步骤
在升级完成后,如遇特殊情况,运维人员可执行回退操作。
· 升级实施期间,如果出现业务面大面积故障(例如:业务网络中断、存储读取失败或业务无法访问等现象),可以触发回退。
· 升级实施流程出现错误,且无法在计划的时间窗内完成升级,可以触发回退。
· 回退需要经过客户与技术支持工程师的共同决策后,再启动回退。

回退流程示意图
|
任务 |
预计耗时 |
|
回退 |
60分钟 |
回退注意事项
开始回退前,必须将升级生效后的业务配置更改操作(角色、主机名、服务、template、网络、主机、hostcfg、证书、虚拟机、域名的配置变更、扩容)恢复到升级前配置,否则会造成业务数据丢失或其他不可预知的错误。
1.登录节点
以root用户登录待回退的云数据库GaussDB管理平台(TPOPS)的任意一个节点。
2.创建回退目录
执行以下命令创建回退目录,并将待回退版本的DBS-docker-service*.tar.gz包上传到回退目录(/data/docker-service/rollback),并解压。
rm -rf /data/docker-service/rollback
mkdir -p /data/docker-service/rollback
cd /data/docker-service/rollback
tar -xvf DBS-docker-service*.tar.gz
3.复制原安装包
将全量回退的安装包上传到回退目录的安装包存放目录下(/data/docker-service/rollback/docker-service/pkgs)。
cp /pkgsbak /* /data/docker-service/rollback/docker-service/pkgs
4.回退准备
执行以下命令完成回退前的准备动作。
cd /data/docker-service/rollback/docker-service
sed -i 's@\\[NOTICE
] Upgrade@\\[NOTICE
] Rollback@g' action/mainAction/distribute.sh
sed -i '/prepare_pkgs/d' appctl.sh
sed -i '/local old_render_args/,+24d' appctl.sh
sed -i '/backup\/config\/user_edit_file.conf/i \cp -raf ${upgrade_path}\/backup\/package\/cloud\/common\/render\/render_args.yml ${old_path}\/package\/cloud\/common\/render' appctl.sh
sed -i "/'rollback')/a\ scp_precheck_files" appctl.sh
sed -i '/function rollback_check_influxdb() {/,/}/c\function rollback_check_influxdb() {\n service=InfluxDB \n update_status '\''done'\''\n}' action/init/pre_check_status.sh
sed -i "s@render/1_node_render.yml@render/temp/1_node_render.yml@g" appctl.sh
sed -i "s@render/3_node_render.yml@render/temp/3_node_render.yml@g" appctl.sh
sed -i "/main_render_args.json.bak/d" appctl.sh
sed -i "/upgrade\/me/a find /opt/cloud/DBS_Component/platform-data/ -type f -name "aps*" | xargs rm -rf \\\\\\" action/mainAction/platform_data_install.sh
sed -i '/upgrade-gaussdb-data/a sed -i "/install_sdk_rpm/a\\\\\nfind /opt/cloud/DBS_Component/GaussDB-data/ -type f -name aps* | xargs rm -rf " action/mainAction/install.sh' action/mainAction/gauss_data_install.sh
分别登录influxdb的安装节点并执行以下命令,关闭influxdb的用户认证。
sed -i "s/https-enabled = true/# https-enabled = true/g" /etc/influxdb/influxdb.conf
sed -i "s/auth-enabled = true/# auth-enabled = true/g" /etc/influxdb/influxdb.conf
systemctl restart influxd
5.执行回退
执行以下命令,进行回退。
cd /data/docker-service/rollback/docker-service
sh appctl.sh rollback_all
九、GaussDB实例升级回退步骤
如果升级观察时,因为业务原因需要回退,或使用升级待观察方式升级失败时,可参考如下内容手动执行升级回退操作。
执行回退
步骤1 登录云数据库GaussDB管理平台(TPOPS)。
步骤2 单击左侧目录"实例管理",进入"实例列表"页面。
步骤3 选择待回退的实例,单击"更多 > 版本升级"。
步骤4 选择升级方式"灰度升级",操作方式"升级回退"以及回退版本。

升级回退操作界面截图
步骤5 输入"YES"字样并单击"确定"。
- 点赞
- 收藏
- 关注作者
评论(0)