VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

VPatch一键升级

功能描述

VPatch支持使用vupdater工具一键升级、一键回退、一键还原。

前提条件

使用vpatch升级需在python3.7环境下运行,即执行python3 --version,返回版本为3.7.* 。

在开始升级前,请检查解压的升级包patch/VPatch/script/ 目录是否存在两个脚本文件 prepare_env.sh和clean_env.sh。

  • 如果不存在上述两个文件,表示当前升级包中不包含python3.7的安装包,需要用户手动安装python3.7;

  • 如果存在上述两个文件,表示当前升级包中已经包含了python3.7的安装包,此时使用root用户运行这两个脚本即可为当前用户安装卸载python3.7。

  • 执行以下命令安装python3.7:

    source prepare_env.sh
    

    检查是否安装成功,返回版本为3.7.*时表示成功:

    python3 -V
    
  • 执行以下命令卸载python3.7:

    sh clean_env.sh
    

卸载后当前连接窗口因为已经配置了python3的环境变量,执行python3 -V命令仍然返回 3.7.*,开启新的连接窗口后恢复安装前情况。

语法格式

  • PSU升级配置文件如下(ini格式):

    [vpatch]
    userName=用户名user1
    userGroup=用户组group1
    appPath=产品软件目录
    dataPath=数据库集簇的绝对路径
    port=端口
    tmpPath=升级过程临时文件目录
    isDocker=true  #支持在Docker环境中使用,非Docker环境不需配置
    
  • OOP升级配置文件如下(ini格式):

    [vpatch]
    userName=用户名user1
    userGroup=用户组group1
    appPath=产品软件目录
    dataPath=数据库集簇的绝对路径
    port=端口
    tmpPath=升级过程临时文件目录
    vpatch_upgrade_file=OOP升级依赖包路径,此包在OOP升级前基础版本的全量包中发布
    isDocker=true  #支持在Docker环境中使用,非Docker环境不需配置
    
  • 一键升级

    ./vupdater --upgrade -f 配置文件
    
  • 一键回退

    ./vupdater --rollback -f 配置文件 --rollbackId = 回退的ID
    
  • 一键还原

    ./vupdater --restore -f 配置文件
    

错误信息说明

命令 返回值 可能错误原因
vpatch --setparam 1 配置文件异常。
vpatch -C 2 已有.json文件。
vpatch -P 3 未添加isDocker配置参数或已有.jsonwenj。
vpatch --upgrade/rollback 4 升级/回退失败,数据库回退到最初状态。
5 升级/回退失败,可尝试一键还原。
6 升级/回退成功,commit失败,需要利用备份文件恢复数据库。

可根据失败提示信息进行重新升级,还原或者根据备份文件恢复数据库。

示例

示例1:一键升级。

1、关闭数据库。

vb_ctl stop

2、备份数据库目录,以vastbase_9104为例。

cp -a /home/vp2/local/vastbase_9104  /home/vp2/local/vastbase_9104_bak

3、切换到数据库安装用户,把补丁包解压放入/home/数据库安装用户/目录,进入patch文件夹下解压升级包。(补丁包以PSU_9104_9662_centos-7_x86-64-01-20221109.tar.gz为例)

su - vp2
cd /home/vp2
tar xf PSU_9104_9662_centos-7_x86-64-01-20221109.tar.gz
cd patch
tar xf 2-2.2-10-92-702-9104-centos-7-x86-64-01.tar.gz

4、创建配置文件,以PSU升级为例,OOP升级请参考OOP配置文件。

vi /home/vp2/vpatch.ini

[vpatch]
userName=vp2
userGroup=vp2
appPath=/home/vp2/local/vastbase
dataPath=/home/vp2/data/vastbase
Port=5432
tmpPath=/home/vp2/omTmp/tmp  

5、执行升级,升级成功返回0。

./vupdater --upgrade -f /home/vp2/vpatch.ini

结果返回如下:

示例2:一键回退,回退成功返回0。

前置条件:确保现版本支持回退。

1、关闭数据库。

vb_ctl stop

2、执行回退。

./vupdater --rollback -f /home/vp2/vpatch.ini --rollbackId=回退的ID

结果返回如下:

示例3:一键还原,一键还原用于应对升级或者回退失败且没有commit的情况,用于恢复到最初状态。还原成功返回0;失败返回1。

./vupdater --restore -f /home/vp2/vpatch.ini