文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

就地升级

就地升级是指一次性升级集群内所有节点,升级期间需停止业务进行。

使用MogDB配套的部署运维工具PTK进行就地升级,是最方便常用的升级方式,过程简单易操作,只需将新版压缩包放在指定目录,然后执行对应的PTK命令,PTK就会自动完成所有检查(包括系统、磁盘、数据库状态等)、执行备份操作,然后进行升级或回滚。

升级路径

MogDB V5.0.X支持通过PTK对V3.0.0-V3.0.XV5.0.0-V5.0.X版本的数据库进行集群升级。不支持高版本向低版本升级。

备份数据

在升级过程中,为避免执行错误出现升级异常,导致原版本数据库文件或数据被意外修改,而无法执行回滚操作的情况,升级前须做好数据备份和完整性保护,方便在升级发生错误时使用已备份的数据恢复到升级前状态,避免因操作失误导致业务无法恢复的情况出现。

在使用PTK升级过程中,工具会自动完成原版本数据库软件的备份,如果需要备份全部的数据文件,可以使用gs_basebackup进行基础的物理备份,示例如下:

  1. 使用数据库用户(如omm)创建备份目录

    mkdir /home/omm/mogdb_data_bak
  2. 通过gs_basebackup进行备份

    gs_basebackup -D /home/omm/mogdb_data_bak -h 127.0.0.1 -p 26000

    需根据实际情况替换主机名、端口号。

升级操作

我们需要先通过以下命令来确认当前数据库集群是否有创建过插件:

ptk cluster -n <CLUSTER_NAME> list-plugins

执行后会输出两个表格,第一个表格代表安装过的插件列表,安装过并不意味着数据库里使用了。第二个表格代表具体的每个数据库中创建过的插件,如果没有创建过任何插件,Extension(s)字段会为空。我们需要确认第二个表格中Extension(s)字段下是否有值,不同的情况升级的方式有些许差别。

未创建插件的集群升级

如果升级前的数据库内没有创建过任何插件,可以直接指定新版本的安装包进行升级:

ptk cluster -n <CLUSTER_NAME> upgrade [-y] -p <PACKAGE_PATH>

含有插件的集群升级

如果数据库中使用了插件的话,由于升级后数据库元数据会发生改变,可能会导致升级后插件不可用或者升级失败。所以对于使用了插件的集群,需要额外指定以下参数来升级:

  • --plugin-dir: 本地目录,该目录下存放提前下载的新版本插件包(下载的插件包请勿变更文件名)

  • --plugin-upgrade-patch:插件升级所需的SQL补丁包(目标版本为MogDB 5.0.2或更新时,无需指定此参数)

升级命令如下:

ptk cluster -n <CLUSTER_NAME> upgrade [-y] -p <PACKAGE_PATH> --plugin-dir <PLUGIN_DIR>

img 注意:插件版本必须和数据库版本进行匹配,如果包含插件,在数据库升级时必须对插件也进行升级。

升级提交

执行上述命令后,PTK会完成升级的完整操作,升级后集群以新版本运行,此时您可以在数据库上进行验证操作,当升级后检查集群状态为正常的情况下,可以通过以下命令提交升级,开启集群读写状态,删除旧版本的备份文件。注意,提交后集群无法再回滚,请确认正确后再提交。

ptk cluster -n <cluster_name> upgrade-commit

确认提交升级后,可以通过以下命令查看集群状态:

ptk cluster -n <cluster_name> status

升级回滚和数据恢复

如果升级过程中存在报错中断,您可以通过人为介入来解决,当解决了问题后,可以通过重新执行升级指令继续完成升级。

如果升级后验证发现问题可以通过upgrade-rollback命令进行回滚,PTK会将集群回滚为旧版本的状态。

ptk cluster -n <cluster_name> upgrade-rollback

如果升级过程发生异常,需要从备份数据进行恢复,可执行以下操作:

  1. 停止数据库服务器

    gs_ctl stop -D $PGDATA
  2. 清理原库中的所有或部分数据文件

    rm -rf $PGDATA/*
  3. 使用数据库系统用户权限从备份中还原需要的数据库文件

    cp -r /home/omm/mogdb_data_bak/* $PGDATA/
  4. 若数据库中存在链接文件,需要修改使其链接到正确的文件

  5. 重启数据库服务器,并检查数据库内容,确保数据库已经恢复到所需的状态

    gs_ctl start -D $PGDATA

注意事项

在执行以上升级操作的过程中,如果发现未能按照预期正常进行,例如展示集群状态时,状态信息为异常等,需要联系原厂工程师进行解决。

请在升级后所有数据库状态都验证正确以后,再执行升级提交操作,如果状态不正确,需进行回滚操作,确保数据库恢复到升级前的正确状态,然后联系原厂工程师对升级中遇到的问题进行确认。

Copyright © 2011-2024 www.enmotech.com All rights reserved.