南大通用GBase 8a应用在某政府项目的升级解决方案

原文链接:https://www.gbase.cn/community/post/4199
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

 1 概述

1.1.背景

本项目针对政府某局级部门的版本升级方案。该项目已稳定上线运行。本项目数据量不大,本次版本升级主要是解决版本上的几个已知问题。升级前后大版本号均为V952,小版本号从952.29升级至952.42。本文主要介绍升级背景以及预计升级所需要的时间;同时对可能遇到的升级失败问题,制定了集群回退预案。

本文涉及到的评估数据均为结合现场硬件配置,业务场景、数据量等多个角度,结合最优实践提供升级方案。

1.2.预估升级时间

升级各阶段预估时间如下表,建议准备更充足的时间,其中“集群回退”部分,如果升级顺利完成则不需要。

升级阶段

预估时间

升级前检查0.5小时
数据备份1小时
执行升级0.5小时
升级后验证0.5小时
恢复业务0.5小时
集群回退(如升级失败)2小时

2.升级步骤

具体介绍升级过程中的每一步操作。总体步骤:
1.升级前检查
2.停集群
3.数据备份
4.执行升级
5.升级后验证

2.1.升级前检查

2.1.1.记录集群版本信息

记录现有集群各组件的版本号,后面用于升级后的对比。

检查项

命令

升级前

升级后

gclusterd/data/gbase8a/gcluster/server/bin/gclusterd -Vver 9.5.2.29.123209 for pc-linux-gnu on x86_64
gbased/data/gbase8a/gnode/server/bin/gbased -Vver 9.5.2.29.123209 for pc-linux-gnu on x86_64
gcadmingcadmin -Vgcadmin 9.5 build Unversioned directory
show versiongccliGBase client 9.5.2.29.123209 
2.1.2.主要表数据记录

巡检日期:XXX
巡检时间:XXX
... ...
======================重点表检查======================
重点表1
重点表2

... ...

2.2.数据备份

为防止升级出现意外,要在升级前进行数据备份,采用操作系统文件级备份的方法。

2.2.1.检查集群任务

由于8a集群节点众多,为方便管理,在8a集群n1节点上安装并配置C3工具,方便运维管理,C3工具可以实现在一个节点上操作linux命令,能分发到8a集群所有节点执行分发命令,并将执行结果反馈给发起节点,这样DBA就不必连接每一个节点去操作了。

用户:gbase
服务器:集群n1节点
命令:
[gbase@MPP1 ~]$ cexec coor: 'gccli -uroot -p...... -e"show processlist" | grep -v Sleep'

注:cexec 是C3工具的命令, 是以并行方式调用linux的命令工具,可以在所有节点上运行任何linux的命令
coor:是C3配置文件中的集群名字,这里代表coordinator管理集群    

2.2.2.停集群

用户:gbase
服务器:集群n1节点
命令:
cexec "gcluster_services all stop"

2.2.3.各节点备份数据

用户:root
服务器:集群n1
cexec coor: "cp -a /data/gbase8a/gcware/ /data/back8a/20210716/ "
nohup cexec "cp -a /data/gbase8a/gcluster/ /data/back8a/20210716/" &
nohup cexec "cp -a /data/gbase8a/gnode/ /data/back8a/20210716/ " &

备份后检查备份目录:
cexec “du -sh /data/back8a/20210716/*”

2.3.执行升级

在确认各项检查都通过后,开始执行升级操作。

2.3.1.升级GBase 8a集群

服务器:n1节点
用户:gbase
命令:
cd gcinstall
一定注意要加 -U 参数
./gcinstall.py -U --silent=demo.options  

2.3.2.修改gbase用户密码

由于V952.XXX版本升级后,做了密码增强功能,升级后gbase用户密码会置为默认密码,故此升级后需要根据项目或客户要求,按需修改gbase用户密码。

2.4.升级后验证

升级后进行版本、功能的验证。

2.4.1.集群版本确认

完成“升级前检查”中“记录集群版本信息”的表格,增加升级后的版本信息。

2.4.2.验证DDL、DML

create table tt1(id int, name varchar(100), birthday date, InputDate datetime,salary decimal(18,3));
insert into tt1 values(1,'赵ABC','2000-01-02','2015-06-03 12:13:14',12345.678);
Update tt1 set name='赵ABC赵ABC' where id=1;
select * from tt1 where 1=1;

3.回退方案

当集群升级无法完成或者升级后不能使用时,通过本步骤还原到老版本。

3.1.回退条件

版本升级工作未能及时完成,影响到第二天的业务执行;
升级后验证未通过;
出现其他严重的问题;

3.2.停止所有业务

停止所有业务,Kill掉新版本的加载服务,准备回退。

3.3.集群回退方案

3.3.1.回退方案一

当用户需要进行GBase 8a MPP Cluster 的版本回退时,需要在安装包中找到Restore.py 脚本,该脚本在gcinstall/下,使用DBA 用户执行。
Restore.py 后面需要跟随2 个参数,其中:
backupFile:执行升级脚本后,系统会生成backup 文件。
rootPwd:为节点机器root 密码,例如示例中的111111。
Restore.py 的运行示例如下:
python Restore.py --backupFile=/home/gbase/gcluster_backup_201808xxxxxxxx.tar.bz2 --rootPwd=111111

3.3.2.回退方案二

1)停止集群:cexec "gcluster_services all stop"

2)卸载新版集群(gbase用户)
 ./unInstall.py --silent=demo.options

3)重装旧版集群
gbase用户,进入老版本安装目录
./gcinstall.py --silent=demo.options

4)停止集群:cexec "gcluster_services all stop"

5)恢复数据:
cexec "rm -rf /data/gbase8a/gcluster/"
cexec "mv /data/back8a/20210716/gcluster/ /data/gbase8a/ "

cexec "rm -rf /data/gbase8a/gnode"
cexec "mv /data/back8a/20210716/gnode/ /data/gbase8a/ "

cexec "rm -rf /data/gbase8a/gcware" 
cexec "mv /data/back8a/20210716/gcware/ /data/gbase8a/ "

6)启动集群:cexec "gcluster_services all start"

3.4.集群回退后验证

参照“升级后验证”部分,进行回退后的验证。

以上为此项目的升级回退方案介绍,希望能指导大家完成相应的升级回退操作。

原文链接:https://www.gbase.cn/community/post/4199
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

 

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值