本文记录 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();'