前言

数据库版本升级在日常工作虽然不是非常频繁,但却必不可少。主要涉及到DBA或者数据库运维人员,因为数据库版本升级在运维管理过程中是一项要求极高的工程,其对时效性、准确性、安全性等要求都非常高。 openGauss数据库3.1.1刚刚发布不久,本文就带大家简单了解一下openGauss数据库的单机版升级过程。

一、升级前的准备工作

1、用户根据openGauss提供的新特性和数据库现状,确定是否对现有系统进行升级。
2、本次实验采用就地升级:升级期间需停止业务活动(一次性升级所有节点)。
3、升级版本:可从低版本升级到高版本,本次是将openGauss 2.0.1升级到最新版本3.1.1 (单机架构)
4、数据库文件备份、业务数据备份。升级一旦失败,有可能会影响到业务的正常开展,提前备份数据,就可以在风险发生后,尽快的恢复业务。(本次不作为重点阐述)
5、升级流程图:
在这里插入图片描述

6、检查数据库状态:gs_om -t status ,保证在数据库处于正常状态下进行升级操作。
7、获取升级包:在opengauss网站获取对应版本的升级包。

二、升级主要步骤

1、查看当前数据库版本

切换到 su – omm 用户,执行命令 gsql –version
在这里插入图片描述

2、创建临时目录用于存放安装文件

mkdir -p /opt/software/gaussdb_upgrade
cd /opt/software/gaussdb_upgrade

在这里插入图片描述

3、下载最新需要升级的版本并解压

1)执行命令:

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.1/x86/openGauss-3.1.1-CentOS-64bit-all.tar.gz 

(说明:此过程,也可以手工在官网下载对应安装包,通过ftp上传到目标服务器路径上。)
在这里插入图片描述
2)解压:
执行命令:

tar –zxvf *

在这里插入图片描述
本次选择“openGauss-3.1.1-CentOS-64bit-om.tar.gz” 安装包。
执行命令:tar -zxvf openGauss-3.1.1-CentOS-64bit-om.tar.gz
在这里插入图片描述

4、执行前置脚本 openGauss的 gs_preinstall

在就地升级前执行前置脚本gs_preinstall。
1)进到解压后的目录:cd /opt/software/gaussdb_upgrade/script
2)执行命令:

./gs_preinstall -U omm -G dbgrp -X  /soft/openGauss/clusterconfig.xml 

如截图,提示“preinstallation succeeded” 则完成当前操作。
在这里插入图片描述

5、执行升级操作

切换至据库用户 su - omm,执行升级操作,这里采用就地升级:使用gs_upgradectl脚本执行就地升级。
执行命令:gs_upgradectl -t auto-upgrade -X /soft/openGauss/clusterconfig.xml
如截图,提示升级完成,等待检查及提交。
在这里插入图片描述

6、升级检查

1)查看版本,执行命令:gsql –version
当前数据库已经从2.0.1升级到3.1.1 版本了。
在这里插入图片描述

2)查看状态,执行命令:gs_om -t status ,当cluster_state 的值为 Normal, 则表示升级成功。
在这里插入图片描述

7、提交升级:

执行命令:

gs_upgradectl -t commit-upgrade -X  /soft/openGauss/clusterconfig.xml 

如截图,提交成功。
在这里插入图片描述

8、回滚
在一些特殊情况下,数据库需要回滚,可执行如下命令行:
1)正常回滚:
gs_upgradectl -t auto-rollback -X /soft/openGauss/clusterconfig.xml

2)强制回滚(如果回滚异常时)
gs_upgradectl -t auto-rollback -X /soft/openGauss/clusterconfig.xml --force

三、附本期小知识

升级过程中会遇到解压文件、文件权限授权等操作, 所以本期附带两个小知识点:
1、linux系统下的解压命令
tar.bz2解压命令: tar –jxvf xxx.tar.bz2
tar.gz文件命令是:tar -zxvf xxx.tar.gz

拓展资料:
在Linux平台,tar是主要的打包工具。tar命令通常用来把文件和目录压缩为一个文件( tarball 或 tar, gzip 和 bzip)。
Tar命令选项:
c – 创建压缩文件
x – 解压文件
v – 显示进度.
f – 文件名.
t – 查看压缩文件内容.
j – 通过bzip2归档
z –通过gzip归档
r – 在压缩文件中追加文件或目录
W – 验证压缩文件
2、chmod 命令
1)什么是 chmod?
chmod 命令可以用来修改用户对某个文件活文件夹的权限,在Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:
r --> 4
w --> 2
x --> 1

拿 rwxrw-r-x 来说,所有者、所属组和其他人分别对应的权限值为:
所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5

所以,此权限对应的权限值就是 765。

r、w、x 分别表示读、写、执行权限

2)如何修改文件权限? 如修改 /etc/hosts 文件。
查看修改前 /etc/hosts,如图所示只有所有者有权限操作 /etc/hosts 文件

ls -la /etc/hosts

在这里插入图片描述
这时我们想让其他人有权限操作 /etc/hosts,执行以下命令
sudo chmod 707 /etc/hosts
在这里插入图片描述
可以发现权限变成了 rwx—rwx,其他人也有权限操作 /etc/hosts 了

3)操作文件夹 ,需要加入 -R 参数
sudo chmod -R 707 [所要操作的文件夹名称]

4)使用字母修改文件权限
首先权限的 3 种用户身份所有者、所属组和其他人分别用字母代表 u、 g、 o ,其次 a 代表所有身份。

修改示例:
表示 所有者(u)的权限为 rwx
sudo chmod u=rwx /etc/hosts

表示 所有者(u)的权限增加 r
sudo chmod u+r /etc/hosts

表示 所有者(u)的权限增加 rx
sudo chmod u+rx /etc/hosts

表示 所有者(u)的权限取消 x
sudo chmod u-x /etc/hosts

多个命令一起操作用 , 进行分割
sudo chmod u-x,o+rw /etc/hosts

以上内容到此结束, 欢迎测试、交流!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐