暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB T单机版从1.0.1升级至1.0.2

原创 gelyon 2020-03-10
1666

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=single Begin 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=single Old 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:MOUNT single=======================output: connected. SQL> VALUE ---------------------------------------------------------------- (/u01/gaussdb/data/protect/kmc_a.ksf, /u01/gaussdb/data/protect/kmc_b.ksf) 1 rows fetched. single============================status:0 Start 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=single clean 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查看升级日志,解决问题后手动执行回滚后再次执行升级命令。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论