VastbaseG100

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

Menu

旧版本升级

本方法适用于Vastbase G100 V2.2 Build 5 中补丁号(Patch)小于75的数据库版本升级。

升级准备

升级前请先备份数据。参考备份与恢复指南

设置免密登录

前置步骤 修改PermitRootLogin配置,允许用户远程登录。

vi /etc/ssh/sshd_config
  • 方法一:注释PermitRootLogin no。

    #PermitRootLogin no
    
  • 方法二:修改PermitRootLogin为yes。

    PermitRootLogin yes 
    

步骤1: 以root用户登录操作系统。

步骤2: 执行如下命令,为ssh生成、管理和转换认证密钥。

ssh-keygen

连续回车,显示如下结果,表示成功。

The key's randomart image is:
+---[RSA 2048]----+
|   . oB ..o   o. |
|    oo.= + . +   |
|  . .o  = . +    |
| o .  .=E+ .     |
| o++.+ooS o .    |
|. Oo=.+= o o     |
| + o  ..+ =      |
|         * .     |
|          .      |
+----[SHA256]-----+

步骤3: 执行ssh-copy-id -i ~/.ssh/id_rsa.pub安装数据库用户@配置中的主机地址,实现免密登录。以数据库安装用户为vastbase为例。

ssh-copy-id -i ~/.ssh/id_rsa.pub vastbase@master

修改GUC参数配置

步骤1: 以root用户登录操作系统。

步骤2: 进入bin目录,修改cluster_guc.conf配置文件。

1、编辑cluster_guc.conf配置文件。

vi $GAUSSHOME/bin/cluster_guc.conf

2、在配置项[coordinator/datanode]末尾添加以下内容:

vastbase_login_info|bool|0,0|NULL|NULL|
recovery_parallelism|int|1,2147483647|NULL|NULL|
audit_operation_result|int|0,2|NULL|NULL|
license_path|string|0,0|NULL|NULL|

3、保存退出。

:wq

若license_path使用默认路径(/etc/vastbase/.license),最后一行license_path相关内容可不添加。

将om脚本拷贝到bin目录下

步骤1: 以root用户登录操作系统。

步骤2: 将$GAUSSHOME/om/script文件夹拷贝到$GAUSSHOME/bin。

cp -rf $GAUSSHOME/om/script $GAUSSHOME/bin

如果更早的版本没有om工具,即没有om文件夹,可将新包中的om目录下的script文件夹拷贝到$GAUSSHOME/bin。

将数据库安装目录更改为软连接

步骤1: 以root用户登录操作系统。

步骤2: 切换到vastbase用户。以数据库安装用户为vastbase为例。

su - vastbase

步骤3: 执行如下命令,查看数据库提交ID。

vastbase --version

返回结果为如下,则5.80.4878为提交ID:

vastbase (Vastbase G100 V2.2 (Build 5.80.4878)) compiled at 2022-01-17 18:01:44 commit 0 last mr   debug

步骤4: 进入到$GAUSSHOME的上一层目录,修改安装目录文件夹名为“文件夹名+_提交ID”,创建与原文件夹同名的软连接,指向该目录。

mv vastbase vastbase_5.80_4878
ln -s vastbase_5.80_4878 vastbase

查看当前文件列表如下所示:

drwxrwxr-x  5 vbinstall vbinstall  51 Apr  7 18:00 omTmp
lrwxrwxrwx  1 vbinstall vbinstall  32 Apr  7 14:27 vastbase -> /home/vbinstall/local/vastbase_5.80.4878
drwx------ 10 vastbase vastbase 134 Apr  7 18:10 vastbase_5.80.4878

调整配置文件

步骤1: 以root用户登录操作系统。

步骤2: 切换到vastbase用户。

su - vastbase

步骤3: 进入数据安装目录,对比vastbase -V回显结果来修改version.cfg和upgrade_version文件。

如果内核版本号是92.298,在以上两个配置文件中需手动将内核版本号修改为92.299。

vastbase -V

以如下版本Vastbase G100为例,执行上述语句返回结果为:

vastbase (Vastbase G100 V2.2 (Build 5.80.4878)) compiled at 2022-01-17 18:01:44 commit 0 last mr  debug

对照vastbase -V返回信息,按照下图方式修改两个配置文件:

修改参数

步骤1 以root用户登录操作系统。

步骤2 修改postgresql.conf配置文件配置参数。

1、编辑配置文件postgresql.conf。

vi $PGDATA/postgresql.conf

2、设置参数。

enable_stream_replication=on
vastbase_login_info=off

3、保存退出。

:wq

上传安装包和配置文件

步骤1: 以root用户登录操作系统。

步骤2: 创建新包目录,并修改新包目录权限为755。上传安装包到该目录下:

mkdir -p /opt/software/vastbase
chmod 755 /opt
chmod 755 /opt/software
chmod 755 /opt/software/vastbase

步骤3: 解压安装包(安装包名称以Vastbase****tar.gz为例,请根据实际情况替换)。

cd  /opt/software/vastbase
tar xf Vastbase****tar.gz

步骤4: 创建vastbase目录,继续解压安装包到该目录中,得到OM工具包。

mkdir /opt/software/vastbase/vastbase
cd vastbase-installer
tar xf Vastbase****tar.gz -C /opt/software/vastbase/vastbase

步骤5: 解压OM工具包(OM包名称以Vastbase-G100****om.tar.gz为例,请根据实际情况替换),OM工具包解压后自动在script目录生成gs_upgradectl等脚本工具。

cd /opt/software/vastbase/vastbase
tar xf Vastbase-G100...om.tar.gz

步骤6: 执行如下命令,填写信息后创建XML配置文件。按照实际情况修改后保存。

cd /opt/software/vastbase
vi cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- Vsatbase整体信息 -->
    <CLUSTER>
        <PARAM name="clusterName" value="dbCluster"/>
        <PARAM name="nodeNames" value="master"/>
        <PARAM name="gaussdbAppPath" value="/home/vastbase/local/vastbase"/>
        <PARAM name="gaussdbLogPath" value="/home/vastbase/data/vastbase/pg_log"/>
        <PARAM name="tmpMppdbPath" value="/home/vastbase/local/omTmp/tmp"/>
        <PARAM name="gaussdbToolPath" value="/home/vastbase/local/omTmp/omToolPath"/>
        <PARAM name="corePath" value="/home/vastbase/local/omTmp/corefile"/>
        <PARAM name="clusterType" value="single-inst"/>
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- node1上的节点部署信息 -->
        <DEVICE sn="1000001">
            <PARAM name="name" value="master"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="127.0.0.1"/>
            <PARAM name="sshIp1" value="127.0.0.1"/>
           
            <!--dbnode-->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="35432"/>
            <PARAM name="dataNode1" value="/home/vastbase/data/vastbase"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

配置文件模板参数填写规则如下:

参数 填写规则
nodeNames hostname
gaussdbAppPath 安装目录
gaussdbLogPath 数据库日志目录
name hostname
dataNode1 数据目录
dataPortBase 数据库相应的端口
tmpMppdbPath、gaussdbToolPath 不和其他目录重叠
  • XML配置文件需注意缩进正确,否则影响后续步骤。

  • 文件格式如图5所示。

图5 XML配置文件格式

步骤7: 将XML配置文件上传到/opt/software/vastbase目录,并将其所属用户修改为数据库安装用户。

chown vbinstall:vbinstall cluster_config.xml

OM工具根据XML配置文件以及它生成的静态文件去识别数据库的,因此该配置文件里面填的信息应和待升级的数据库配置信息一致。

执行gs_preinstall准备升级

gs_preinstall命令会修改~/.bashrc环境变量配置文件,可能与旧版本的安装程序写入的source ~/.Vastbase的环境变量内容冲突(直接追加到行后,不换行),因此执行gs_preinstall之前,在数据库用户的~/.bashrc文件最后加一个换行符。

步骤1: 以root用户登录操作系统。

步骤2: 进入script目录,执行准备升级命令,期间输入yes:

cd /opt/software/vastbase/vastbase/script/
./gs_preinstall -U vbinstall -G vbinstall -X /opt/software/vastbase/cluster_config.xml
  • -U为数据库安装用户。

  • -G为数据库安装用户所属的组名。

  • -X为配置文件完整路径。

执行结果如下所示:

Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting pssh path
Successfully set core path.
Are you sure you want to create the user[vastbase] and create trust for it (yes/no)?
 yes
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/soft/vb/2.2.5.120/vastbase-installer/script/gs_checkos -i A -h vb-up-test --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.

执行升级

步骤1: 以root用户登录操作系统。

步骤2: 切换到数据库安装用户(以vbinstall为例),重载环境变量。

su - vbinstall
source ~/.bashrc

步骤3: 生成升级中所用到的配置文件。

gs_om -t generateconf -X /opt/software/vastbase/cluster_config.xml --distribute

步骤4: 设置OM_GAUSSLOG环境变量,修改文件.Vastbase和.bashrc,将OM_GAUSSLOG的值修改成cluster_config.xml配置文件中gaussdbLogPath的值。

步骤5: 停止数据库。

vb_ctl stop

步骤6: 重新以root用户登录操作系统。

步骤7: 执行升级命令gs_upgradectl进行升级。

gs_upgradectl -t auto-upgrade -X /opt/software/vastbase/cluster_config.xml

执行结果如下:

The requster's hostname: vb-up-test, IP: 192.168.100.201, mac address:00:0c:29:8f:38:6d
The application is Vastbase G100
Static configuration matched with old static configuration files.
Performing inplace rollback.
Rollback succeeded.
Checking upgrade environment.
Successfully checked upgrade environment.
Successfully started cluster.
Start to do health check.
Successfully checked cluster status.
Backing up current application and configurations.
Successfully backed up current application and configurations.
Backing up cluster configuration.
Successfully backup hotpatch config file.
Successfully backed up cluster configuration.
Installing new binary.
Restoring cluster configuration.
Successfully restored cluster configuration.
Successfully started cluster.
Successfully started cluster.
47154207554752:error:0200100D:system library:fopen:Permission denied:crypto/bio/bss_file.c:69:fopen('/root/dependency/openssl/openssl/openssl.cnf','rb')
47552293625024:error:0200100D:system library:fopen:Permission denied:crypto/bio/bss_file.c:69:fopen('/root/dependency/openssl/openssl/openssl.cnf','rb')
47769733770432:error:0200100D:system library:fopen:Permission denied:crypto/bio/bss_file.c:69:fopen('/root/dependency/openssl/openssl/openssl.cnf','rb')
Switch symbolic link to new binary directory.
Successfully switch symbolic link to new binary directory.
Successfully started cluster.
Successfully started cluster.
Waiting for the cluster status to become normal.
.
The cluster status is normal.
Start to do health check.
Successfully checked cluster status.
Upgrade main process has been finished, user can do some check now.
Once the check done, please execute following command to commit upgrade:

    gs_upgradectl -t commit-upgrade -X /soft/vb/cluster_config.xml 

以上报错对升级暂无影响,无需关注。

步骤8: 切换到数据库用户,执行如下命令验证升级后版本和查看状态。

su - vastbase
vastbase --version
gs_om -t status

数据库升级操作回滚

执行如下命令,完成数据库回滚。

gs_upgradectl -t auto-rollback -X /opt/software/vastbase/cluster_config.xml

执行结果如下:

[vastbase@vb-up-test script]$ gs_upgradectl -t auto-rollback -X /opt/software/vastbase/cluster_config.xml
Performing inplace rollback.
Checking static configuration files.
Successfully checked static configuration files.
Successfully started cluster.
Restoring application and configurations.
Successfully restored application and configuration.
Restoring cluster configuration.
Successfully rollback hotpatch config file.
Successfully restored cluster configuration.
Clean up backup catalog files.
Successfully started cluster.
Successfully cleaned new install path.
Rollback succeeded.

提交数据库升级操作

gs_upgradectl -t commit-upgrade -X /opt/software/vastbase/cluster_config.xml

执行结果如下:

Clean up backup catalog files.
Successfully cleaned old install path.
Successfully started cluster.
Commit binary upgrade succeeded.

提交升级后将无法回滚。