GBase 8a
运维管理
文章

GBaase8a集群版本各版本升级回退流程

发表于2024-09-14 20:46:2950次浏览3个评论

目前涉及的版本为:
8.6.2.43系列:862.43-R33
9.5.3.20系列:9.5.3.20.125411
9.5.3.23系列:9.5.3.23.28416dc2、9.5.3.23-patch.129390
9.5.3.27系列:9.5.3.27.88ef4e28、9.5.3.27.14_patch.1b41b5c1、9.5.3.27.14_patch.2f6f9851
9.5.3.27.20系列:9.5.3.27.20_patch.15410d0d、9.5.3.27.20_patch.6d2b60a8、9.5.3.27.20_patch.9fc3fcec
各系列本身之间没有系统表改变,系列之间有系统表变化。

升级流程:
1、862跨版本升级流程:862.43-R33 -> 952.42.129983 -> 953.27.14_patch.1 -> 953.27.20_patch.1/6/9/14/15
2、953.20版本升级流程:953.20.125411 -> 953.23.28416dc2 -> 953.27.20_patch.1/6/9/14/15
3、953.23版本升级流程:953.23-patch129390、953.23.28416dc2 -> 953.27.20_patch.1/6/9/14/15
4、953.27版本升级流程:953.27.88ef4e28 -> 953.27.20_patch.1/6/9/14/15
5、953.27.20版本升级流程:953.27.20_patch.1/6/9/14/15


同一版本系列:
1)做过操作,只能-U降级;
2)没做操作,可以-U降级,也可以restore.py回退。
不同版本系列:
1)做过操作,只能-U降级+手工恢复系统表;
2)没做操作,可以-U降级+手工恢复系统表,也可以restore.py回退。

回退流程:
1、从9.5.3.27系列版本升级至 9.5.3.27.20_patch.15 后,均可通过 -U 升级方式进行回退。
2、从9.5.3.23系列版本升级至 9.5.3.27.20_patch.15 后,
  2.1 如果集群没有做过任何操作,可使用Restore命令,从备份中直接恢复到原版本。
  2.2 如果升级后,集群有过业务操作,可先通过 -U 升级方式进行回退,随后从备份文件中提取  
      gbase.user 、 gbase.vcs_priv、 gbase.tables_priv、 gbase.db 四张表的备份文件,
       恢复到原位置后,重启集群服务的方式进行回退。
       提示:本方式存在风险,在升级之后做过的创建用户、授权操作,需要重新做。
          
3、从9.5.3.20系列版本,无法直接升级至 9.5.3.27.20_patch.15 ,可以先升级至9.5.3.23.2版本,
  再升级至 9.5.3.27.20_patch.15。
    3.1 回退过程也需要先回退至9.5.3.23.2,方法同上。
    3.2 从9.5.3.23.2回退至9.5.3.20,可通过 -U 升级方式进行回退。
        9.5.3.20 和 9.5.3.23版本有系统表变化,涉及表名为 gbase.consumer_group_user ,变化内容为 username 字段改为大小写敏感。
        该字段值来源于gbase.user表,在gbase.user表中,该字段本身为大小写敏感。所以该表的改变为修正问题,可以不进行回退。

注意事项:
1、升级:
从953.23升级至953.27.20之前需要在InstallFuns.py中添加备份vcs_priv系统表:
sed -i '/#gcluster systable/a\\ \tbackupFile += GetFileListByRegex("%s/gcluster/userdata/gcluster/gbase/vcs_priv.*" % (installPrefix))' InstallFuns.py

2、回退:
python Restore.py --backupFile=/home/gbase/gcluster_backup_multi_9.5.3.27.14_patch.1b41b5c1_*.tar.bz2 --silent=demo.options --passwordInputMode=file
backupGcwareFile可选参数,如果是由 9.5.3.X 回退到 9.5.2.X,需要填写gcware的备份文件路径和名称。


### 从9.5.3.27 系列版本回退到 9.5.3.23 版本操作流程:

4、如果集群升级至9.5.3.27.20-patch.x之后 ,有过业务操作,不能通过restore进行恢复。
  需要使用gcinstall -U 方式“降级”回 9.5.3.23 版本,并从备份文件中提前4张变化的系统表的备份,恢复到相应位置。
  
     相关系统表包括: gbase.user 、 gbase.vcs_priv、 gbase.tables_priv、 gbase.db 。
    4.1 按照正常升级流程,将集群版本从 9.5.3.27.20-patch.1 降级回 9.5.3.23.2 版本 。
       降级完成后,可以观察到集群管理节点的 gclusterd 服务无法正常启动。
        
   4.2 停止集群服务
       cexec all: 'gcluster_services all stop'
       cexec coor: 'gcware_services all stop'

   4.3 创建备份文件解压目录
       mkdir -p /tmp/backup_extract 
        
    4.4 解压管理节点备份文件 
       tar xvf /home/gbase/gcluster_backup_multi_9.5.3.23.28416dc2_20240321124815_192.168.59.142.tar.bz2 -C /tmp/backup_extract/  
       查看解压结果
        ls -l /tmp/backup_extract/  
        cd /tmp/backup_extract/opt/*/gcluster/userdata/gcluster/gbase/
        pwd 
        ls -l user.* tables_priv.* vcs_priv.* db.* 
        
   4.5 将文件复制到相应管理节点
       创建备份目录:
        cexec all: 'mkdir -p /opt/gbase_workspace/notes/20240321/gcluster  /opt/gbase_workspace/notes/20240321/gnode '    
    
        cd  /tmp/backup_extract/opt/*/gcluster/userdata/gcluster/gbase/ 
        管理节点循环执行:
           ssh 192.168.59.142 'cp /opt/192.168.59.142/gcluster/userdata/gcluster/gbase/user.* /opt/gbase_workspace/notes/20240321/gcluster'
           ssh 192.168.59.142 'cp /opt/192.168.59.142/gcluster/userdata/gcluster/gbase/tables_priv.* /opt/gbase_workspace/notes/20240321/gcluster'
           ssh 192.168.59.142 'cp /opt/192.168.59.142/gcluster/userdata/gcluster/gbase/vcs_priv.* /opt/gbase_workspace/notes/20240321/gcluster'
           ssh 192.168.59.142 'cp /opt/192.168.59.142/gcluster/userdata/gcluster/gbase/db.* /opt/gbase_workspace/notes/20240321/gcluster'
            scp user.* tables_priv.* vcs_priv.* db.*  192.168.59.142:/opt/192.168.59.142/gcluster/userdata/gcluster/gbase/

    4.6 解压数据节点备份文件 
       从第一个数据节点复制备份文件到本本管理节点
        scp 192.168.59.151:/home/gbase/gcluster_backup_multi_9.5.3.23.28416dc2_20240321124815_192.168.59.151.tar.bz2 /tmp 
       tar xvf /tmp/gcluster_backup_multi_9.5.3.23.28416dc2_20240321124815_192.168.59.151.tar.bz2 -C /tmp/backup_extract/  
       查看解压结果
        ls -l /tmp/backup_extract/  
        cd /tmp/backup_extract/opt/*/gnode/userdata/gbase/gbase/
        pwd 
        ls -l user.* tables_priv.* db.* 
        
    4.7 将文件复制到相应数据节点
        
        cd  /tmp/backup_extract/opt/*/gnode/userdata/gbase/gbase/ 
        数据节点循环执行:
           ssh 192.168.59.151 'cp /opt/192.168.59.151/gnode/userdata/gbase/gbase/user.* /opt/gbase_workspace/notes/20240321/gnode'
           ssh 192.168.59.151 'cp /opt/192.168.59.151/gnode/userdata/gbase/gbase/tables_priv.* /opt/gbase_workspace/notes/20240321/gnode'
           ssh 192.168.59.151 'cp /opt/192.168.59.151/gnode/userdata/gbase/gbase/db.* /opt/gbase_workspace/notes/20240321/gnode'
            scp user.* tables_priv.* db.*  192.168.59.142:/opt/192.168.59.142/gnode/userdata/gbase/gbase/

   4.8 启动集群服务
       cexec coor: 'gcware_services all start'
       cexec all: 'gcluster_services all start'
    
   4.9 检查集群状态是否正常
        
    4.10 启动always、crontab。
        
    注: 通过该方式恢复的集群,如果在升级之后有创建用户、授权操作,需要重新创建和授权。
    
    附:
   4.11 如果升级到953.27.20-patch.x时,没有备份vcs_priv表,恢复时找不到文件,可以在恢复其他3个表后,启动gclusterd服务,执行以下语句恢复。

        所有管理节点IP循环执行:
        gccli -ugbase -pxxx -h管理节点ip  -e"alter self table gbase.vcs_priv drop column Unmask_priv ; 
                                              alter self table gbase.vcs_priv drop column Drop_table_priv ; 
                                              alter self table gbase.vcs_priv drop column Drop_view_priv ; 
                                              alter self table gbase.vcs_priv drop column Drop_database_priv ; "
    
    4.12 然后重启集群服务
       cexec all: 'gcluster_services all stop'
       cexec all: 'gcluster_services all start'

评论

登录后才可以发表评论
用户头像
levvel发表于 9个月前
我看好你哟!
用户头像
levvel发表于 6个月前
评论是对发帖人的一种尊重
用户头像
levvel发表于 5个月前
听说评论可以拿积分,我试一下子