<< 返回文章列表

GaussDB T单机版从1.0.1升级至1.0.2操作方法

2020年3月10日
gelyon
224

墨天轮原文链接:https://www.modb.pro/db/22416

GaussDB T单机可通过执行upgrade.py脚本对数据库进行版本升级,所有升级操作都使用安装GaussDB T数据库的操作系统omm用户登录服务器执行。
本示例将介绍GaussDB T单机如何从1.0.1版本升级至1.0.2版本。

1、升级注意事项

GaussDB T升级注意事项:(升级前,请严格阅读以下相关注意事项,并确认)
① 只支持相邻C版本之间的升级,因此需要确保目标版本和当前版本是否是相邻C版本。如果要升级到多个版本,需要依次升级。
② 在升级前根据需要备份重要的数据,建议进行一次全量备份。
③ 数据库所在环境的磁盘的预留空间不小于系统表文件所占空间(该预留空间供备份操作使用),否则升级失败。
④ 请确保数据库用户(以omm为例)对升级安装包具有一定的权限(≤0750),否则升级失败,需执行回滚。
⑤ 升级前确认数据库实例运行正常,可正常启停,可正常执行业务,否则升级失败,需执行回滚。
⑥ 升级前必须停止业务。
⑦ 确保没有其他控制软件(例如,CloudSOP、DBM等)对数据库进行实例关闭或拉起、主备切换、容灾、备份等操作,或者触发定时任务。否则升级可能失败,并且无法回滚。

2、升级前版本检查

omm用户下,执行以下命令,检查升级前数据库版本信息:

$ zsql / as sysdba -q

connected.

SQL> select * from v$version;

VERSION                                                         
----------------------------------------------------------------GaussDB_100_1.0.1.B023 Release d92e025                          
ZENGINE                                                         
d92e025                                                         

3 rows fetched.SQL> select name,status,open_status,database_condition,database_role from v$database;

NAME       STATUS     OPEN_STATUS     DATABASE_CONDITION        DATABASE_ROLE    
---------- ---------- --------------- ------------------------- --------------------YHDB     OPEN       READ WRITE      NORMAL                    PRIMARY             

1 rows fetched.

SQL> exit

$

3、上传目标版本安装包并解压

使用omm用户上传目标版本安装包并解压,获取upgreade.py升级脚本,omm用户需要对目标版本安装包所在目录有读、写和执行权限。

$ mkdir -p /u01/gaussdb/upgrade
$ cd /u01/gaussdb/upgrade/
$ ls -l
total 8200
-rwx------ 1 omm dbgrp 8395154 3月   5 18:10 GaussDB_T_1.0.2-DATABASE-REDHAT-64bit.tar.gz$ 
$ tar -xvf GaussDB_T_1.0.2-DATABASE-REDHAT-64bit.tar.gz 
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/GaussDB_T_1.0.2-RUN-REDHAT-64bit.sha256
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/GaussDB_T_1.0.2-RUN-REDHAT-64bit.tar.gz
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/funclib.py
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/install.py
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/sshexkey.py
GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/upgrade.py

$ cd GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/
$ ls
funclib.py  GaussDB_T_1.0.2-RUN-REDHAT-64bit.sha256  GaussDB_T_1.0.2-RUN-REDHAT-64bit.tar.gz  install.py  sshexkey.py  upgrade.py
$

4、创建config_file.ini升级配置文件

创建升级配置文件config_file.ini,配置文件内容格式:IP=升级包绝对路径,GSDB_HOME目录,备份目录,GSDB_DATA数据目录。
注意:备份目录是升级过程中备份文件的存储路径,需要提前创建。

$ mkdir -p /u01/gaussdb/upgrade/backup $ cd /u01/gaussdb/upgrade/ 
$ vi config_file.ini 
192.168.179.123=/u01/gaussdb/upgrade/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit.tar.gz,/u01/gaussdb/app,/u01/gaussdb/upgrade/backup,/u01/gaussdb/data$

5、执行升级前环境检查

omm用户下,进入升级包的upgrade.py脚本所在目录,执行以下命令进行升级环境检查:

$ cd /u01/gaussdb/upgrade/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/
$ python upgrade.py -s pre-check --config-file=/u01/gaussdb/upgrade/config_file.ini --upgrade-mode=singleBegin to precheck for single upgrade.Old version: 1.0.1.B023 New version: 1.0.2.B307.
Precheck for single upgrade finished.Upgrade [pre-check] step successfully.
$

6、执行升级

omm用户下,进入升级包的upgrade.py脚本所在目录,执行以下命令进行升级:

$ pwd
/u01/gaussdb/upgrade/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit
$ python upgrade.py -s run --config-file=/u01/gaussdb/upgrade/config_file.ini --upgrade-mode=singleOld version: 1.0.1.B023 New version: 1.0.2.B307.
Precheck step for single upgrade.Prepare step for single upgrade.Replace step for single upgrade.Begin distrubute key to other instances.output:attr:MOUNTsingle=======================output:
connected.SQL> 
VALUE                                                           ----------------------------------------------------------------(/u01/gaussdb/data/protect/kmc_a.ksf, /u01/gaussdb/data/protect/kmc_b.ksf)1 rows fetched.

single============================status:0Start step for single upgrade.Upgrade step for single upgrade.Sync step for single upgrade.
Dbcheck step for single upgrade.Flush step for single upgrade.
Run for single upgrade finished.Upgrade [run] step successfully.
$

7、升级后检查

升级成功后数据库处于停止状态,需要手动拉起数据库。启动数据库,检查升级后数据库信息:

$ cd /u01/gaussdb/app/bin/
$ python zctl.py -t start Successfully started instance.

$ zsql / as sysdba -q

connected.SQL> select * from v$version;

VERSION                                                         
----------------------------------------------------------------GaussDB_T_1.0.2.B307 Release d4484ac                            
ZENGINE                                                         

2 rows fetched.SQL> select name,status,open_status,database_condition,database_role from v$database;

NAME       STATUS     OPEN_STATUS     DATABASE_CONDITION        DATABASE_ROLE                 
---------- ---------- --------------- ------------------------- ------------------------------YHDB     OPEN       READ WRITE      NORMAL                    PRIMARY                       

1 rows fetched.

SQL> exit

$

到此,GaussDB T单机版的升级完成。

8、清理升级环境

确认升级成功后,可以清理环境,执行cleanup清理环境时会删除升级过程中产生的日志文件(upgrade.log文件),如果后期需要查看,请在执行cleanup前手动保存upgrade.log文件。upgrade.log文件的存储路径是/opt/gaussdb/backup/ha_upgrade_backup/upgrade.log,其中/opt/gaussdb/backup是手动创建的升级过程中备份文件的存储路径。
omm用户下,进入升级包的upgrade.py脚本所在目录,执行以下命令清理环境:

$ pwd
/u01/gaussdb/upgrade/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit
$ python upgrade.py -s cleanup --config-file=/u01/gaussdb/upgrade/config_file.ini --upgrade-mode=singleclean backup and tmp files.Upgrade [cleanup] step successfully.
$

9、升级失败后回滚

如果在升级过程中失败需要回滚,操作如下:

  1. 进入upgrade.py脚本所在目录,执行以下命令进行回滚检查。
    $ cd /u01/gaussdb/upgrade/GaussDB_T_1.0.2-DATABASE-REDHAT-64bit/
    $ python upgrade.py -s rollback-check --config-file=/u01/gaussdb/upgrade/config_file.ini --upgrade-mode=single

  2. 执行回滚。
    $ python upgrade.py -s rollback --config-file=/u01/gaussdb/upgrade/config_file.ini --upgrade-mode=single
     显示“Upgrade [rollback] step successfully.”表示回滚成功。
     回滚命令执行失败,需要查看/u01/gaussdb/upgrade/backup/ha_upgrade_backup中upgrade.log查看升级日志,解决问题后手动执行回滚后再次执行升级命令。