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
结果返回如下: