前言
如前文所述,我们的小demo项目起初安装了openGauss的2.1.0版本,由于2.1.0不是长期维护(LTS)版本,所以要升级到5.0.0LTS。考虑到虽然是DEMO项目,但也有些体验用户,所以为了保障业务连续性,决定还是按照升级的方式,而不采取卸载重装的方式。本篇从2.1.0经停3.0.0再到5.0.0版本升级过程的简要总结,供朋友们参考和指导。
升级路径:
官网对于从2.1.0到5.0.0的升级路径是不保证成功的,但是对于2.0.0的升级路径是支持的,可以从2.0.0到3.0.0,也可以从2.0.0直接到5.0.0,当然3.0.0也可以到5.0.0,如下图所示:
参考:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseOMGuide/%E5%8D%87%E7%BA%A7%E5%89%8D%E5%BF%85%E8%AF%BB.html
下面开始升级的操作过程:
1. 查看数据库版本和状态信息
gs_om -t status --detail
gsql -p 26000 -d postgres -U omm
gaussdb –V
2. 检查OS
gs_checkos -i A (该命令需在root用户下执行,可选执行)
3. 检查数据库和表信息
创建了一个demo项目用的数据库,以及用到的表,表里面有部分测试数据。
select count(1) from device;
4. 备份数据(商用环境务必执行,内部调测环境建议执行)
因升级如果失败,存在数据库不能启动且不能回退的风险,因此强烈建议备份数据,具体备份策略可根据实际业务情况确定。
5. 创建3.0.0版本升级目录,目录命名可自行确定,建议见名知意
偷懒起见,我把5.0.0的升级目录也直接创建了,放在software目录下,可根据个人情况自行制定。
mkdir gaussdb_upgrade3.0.0
6. 下载3.0.0版本软件包
进入创建好的3.0.0的目录: 通过wget下载3.0.0的软件包,注意查看操作系统及版本,制式正确。
wget:https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86_openEuler/openGauss-3.0.0-openEuler-64bit-all.tar.gz
注意:尽管3.0.5是3.0.x最新的包,但是由于3.0.5版本发布日期比5.0.0更晚,因此不支持3.0.5到5.0.0的升级路径。我刚开始用了这个包走了好多弯路,在HW朋友们的帮助和提醒下,才后知后觉的了解到这点。
7. 解压
(这部分和安装类似,就不做详细展开)
tar zxvf openGauss-3.0.0-openEuler-64bit-all.tar.gz
tar zxvf openGauss-3.0.0-openEuler-64bit-om.tar.gz
8. 执行preinstall
(这部分和安装类似,就不做详细展开)
进入script目录,执行preinstall命令,注意要用root用户执行:
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml
执行过程会询问是否创建omm用户,回复yes。
9. 修改目录权限
如不修改会提示文件无访问权限。
chmod 755 -R /opt/software/gaussdb_upgrade3.0.0/
10. 执行升级过程
关于openGauss就地升级和灰度升级的区别,主要在于灰度升级的时候业务不中断。切换至omm用户,执行升级命令,注意确认路径在3.0.0。
gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml --grey
升级成功。
11. 检查升级效果
检查数据库版本:
检查数据库和表存在:
12. 提交升级
若经过3.0.0升级至5.0.0,则一定要提交升级,否则在升级5.0的时候会报错。另外需注意,提交升级之后就不能再回退至升级前的版本了。
gs_upgradectl -t commit-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml
13. 再次查看数据库版本和状态信息
gs_om -t status –detail
---至此,版本已成功升级至3.0.0
14. 创建5.0.0版本升级目录
(过程上需要记录,但我们偷懒在前面已经一并创建了)
mkdir gaussdb_upgrade5.0.0
15. 下载5.0.0版本软件包
wget:https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86_openEuler/openGauss-5.0.0-openEuler-64bit-all.tar.gz
仍然要确认好操作系统和版本以及制式。
16. 解压5.0.0软件包
tar zxvf openGauss-3.0.0-openEuler-64bit-all.tar.gz
tar zxvf openGauss-3.0.0-openEuler-64bit-om.tar.gz
17. 执行5.0.0 preinstall
(这部分和安装类似,就不做详细展开)
进入5.0.0的script目录,执行5.0.0的preinstall,注意要用root用户执行。
18. 修改目录权限
chmod 755 -R /opt/software/gaussdb_upgrade5.0.0/
19. 执行升级过程
(推荐灰度升级方式)
切换至omm用户,执行升级过程,确认目录:
gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml –grey
说明:命令格式和3.0.0的升级一样。
20. 检查升级效果
检查数据库版本
检查数据库和表数据
21. 检查无误后提交升级
gs_upgradectl -t commit-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml
22. 再次查看数据库版本和状态信息
至此,数据库已经成功从2.1.0升级至5.0.0了,由于官网的不保证,升级之前还是很忐忑的,事实证明了openGauss实际是支持的,这是一种低调的实力。
说明:
-
请大家忽略xml文件路径中5.0.1的干扰,整个过程和5.0.1没有关系,只是前面安装5.0.1版本时把xml文件放置在这个目录下,升级时懒得改了就没动。
-
从2.1.0也可以越过3.0.0直接升级至5.0.0,按照文中的操作步骤略作调整也可实现,考虑篇幅所限不单独罗列了。
本文内容来自于数据库领域资深技术专家赵锋老师,希望我们的文章正好能解决你的问题。