openGauss 安装与升级过程记录
本文记录 openGauss 交互式安装与升级到新版本的过程。
参考文档:
https://docs.opengauss.org/zh/docs/latest/docs/InstallationGuide/%E5%AE%89%E8%A3%85openGauss.html
https://docs.opengauss.org/zh/docs/latest/docs/DatabaseOMGuide/upgrade.html
交互式安装
我们单独创建一个用户 omm
,切换到该用户后再执行后续操作:
useradd omm
su -l omm
mkdir "${HOME}/og"
准备配置文件
安装 openGauss 前需要先创建配置文件 cluster_config.xml
,用于指定集群中各服务器 IP、端口、安装路径、节点数据路径、日志路径等信息。
这里提供单机部署的配置文件作为示例,文件路径为 ${HOME}/og/cluster_config.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss 集群信息 -->
<CLUSTER>
<!-- 集群名 -->
<PARAM name="clusterName" value="single_node_cluster" />
<!-- 各节点 hostname,逗号分隔 -->
<PARAM name="nodeNames" value="<hostname>" />
<!-- openGauss 安装目录 -->
<PARAM name="gaussdbAppPath" value="/home/omm/og/install" />
<!-- 日志目录 -->
<PARAM name="gaussdbLogPath" value="/home/omm/og/log" />
<!-- 临时文件目录 -->
<PARAM name="tmpMppdbPath" value="/home/omm/og/temp" />
<!-- 数据库工具目录 -->
<PARAM name="gaussdbToolPath" value="/home/omm/og/om" />
<!-- 数据库 core 文件目录 -->
<PARAM name="corePath" value="/home/omm/og/corefile" />
<!-- 节点 IP,与数据库各节点 hostname 一一对应,支持 IPv6 -->
<PARAM name="backIp1s" value="192.168.0.1" />
</CLUSTER>
<!-- 各节点部署信息 -->
<DEVICELIST>
<DEVICE sn="<hostname>">
<PARAM name="name" value="<hostname>" />
<!-- 节点所在的 AZ 及 AZ 优先级 -->
<PARAM name="azName" value="AZ1" />
<PARAM name="azPriority" value="1" />
<!-- IP,支持 IPv6,如果服务器只有一张网卡,可将 backIp1 和 sshIp1 配置为相同 IP -->
<PARAM name="backIp1" value="192.168.0.1" />
<PARAM name="sshIp1" value="192.168.0.1" />
<PARAM name="dataNum" value="1" />
<!-- 数据库端口号 -->
<PARAM name="dataPortBase" value="15400" />
<PARAM name="dataNode1" value="/home/omm/og/data" />
<PARAM name="dataNode1_syncNum" value="0" />
</DEVICE>
</DEVICELIST>
</ROOT>
下载软件包
https://opengauss.org/zh/download
依据处理器架构与 OS 版本找到对应的 openGauss 企业版软件包下载链接。 我们这里选择的是 6.0.1 企业版。 下载并解压:
mkdir -p "${HOME}/og/pkg" && cd "${HOME}/og/pkg"
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.1/openEuler22.03/arm/openGauss-All-6.0.1-openEuler22.03-aarch64.tar.gz
tar -zxf ./*.tar.gz
预安装
我们使用软件包中的 gs_preinstall
执行预安装操作。
预安装的作用主要是修改系统配置、拷贝软件包到集群中各服务器、创建用户与用户组、创建目录并配置访问权限等。
# 解压软件包中的工具
tar -zxf ./*-OM-*.tar.gz
# 添加执行权限
chmod -R +x ./script
cd ./script
# 执行预安装
./gs_preinstall -U omm -G omm -X "${HOME}/og/cluster_config.xml"
由于预安装修改了环境变量,我们需要登出用户再重新登入使其生效,或者直接:
. "${HOME}/.bashrc"
安装
然后执行 gs_install
安装并部署 openGauss 数据库集群:
gs_install -X "${HOME}/og/cluster_config.xml"
安装过程中依据提示配置密码即可。
验证
# 查询数据库状态
gs_om -t status
# 连接数据库并查询版本号
gsql -d postgres -p 15400 -c 'select version();'
gsql -d postgres -p 15400 -c 'select working_version_num();'
卸载
gs_uninstall --delete-data
升级到新版本
下载新版本软件包
这里我们选择 7.0.0-RC1 企业版,下载并解压:
mkdir -p "${HOME}/og/pkg_upgrade" && cd "${HOME}/og/pkg_upgrade"
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-RC1/openEuler22.03/arm/openGauss-All-7.0.0-RC1-openEuler22.03-aarch64.tar.gz
tar -zxf ./*.tar.gz
预安装
升级前需要使用新版本软件包中的 gs_preinstall
工具执行预安装:
tar -zxf ./*-OM-*.tar.gz
chmod -R +x ./script
cd ./script
./gs_preinstall -U omm -G omm -X "${HOME}/og/cluster_config.xml"
. "${HOME}/.bashrc"
升级
gs_upgradectl -t auto-upgrade -X "${HOME}/og/cluster_config.xml" --grey
验证
gs_om -t status
gsql -d postgres -p 15400 -c 'select version();'
# 检查各节点二进制可执行文件版本
gs_ssh -c "gsql -V"
gs_ssh -c "gaussdb -V"
回滚
在提交升级前仍然可以回滚到旧版本的数据库:
gs_upgradectl -t auto-rollback -X "${HOME}/og/cluster_config.xml"
提交升级
如果验证结果正常,则可以提交升级。 注意,提交升级后就不能再回滚了。
gs_upgradectl -t commit-upgrade -X "${HOME}/og/cluster_config.xml"
提交升级后,可以查询数据库节点版本号:
gsql -d postgres -p 15400 -c 'select working_version_num();'