为了解决当前polardb-O数据库存在的一个BUG,阿里云官方提供了修复补丁,需要将当前版本2.1.2.4升级到2.1.2.5。本次主题通过此次升级来详细介绍一下阿里云Polardb-O数据库集群补丁整体升级操作过程。

数据库设备信息
polardb-o数据库集群部署采用1+1+1模式,使用3台主机分别搭建各自服务,下面是polardb-o详细的集群配置信息。

Polardb-O部署架构

Polardb-O补丁升级

在CM集群管控节点执行下面命令来检查数据集群状态

检查主备库运行状态
使用PolarDB用户分别在主备两个节点检查数据库运行状态:

检查主备同步复制状态
由于配置了同步复制,健康检查配置只能在主库检查,备库是无法查询到同步复制状态信息,所以使用下面指令在主库上面检查同步复制状态。

查看当前数据库版本

物理备份使用polardb-O软件自带备份工具polar_basebackup,它是以物理文件形式将本地文件与PFS数据文件进行全量备份。本次备份使用主库来备份,先登录主库后执行下面命令来进行数据全量备份,并将文件备份到备份路径/home/polardb/backups/20201017/。

数据库逻辑全备
逻辑备份使用polardb-O软件自带备份工具pg_dumpall,它是以sql形式进行全库备份,同样也是在主库进行数据备份,并将文件备份到备份路径/home/polardb/backups/20201017

Polardb-O使用CM集群管控来控制主备之间切换,软件补丁升级时如果优先主库,会导致CM触发主库切换,导致数据库不稳定,势必会影响业务系统正常使用。因此结合当前集群架构考虑优先升级备库,备库停止不会触发CM管控进行主备切换。接下来会详细介绍备库升级全过程。
首先用polardb用户,登录polardb备库服务器,使用下面命令停止polardb进程。

经检查备库polardb进程已经被成功停掉,业务暂时无影响,主库可以提供读写服务。
备份polardb-o软件
在/usr/local目录下将polardb旧软件包备份出来,为了防止后面升级过程失败,可以进行备份回退。

卸载polardb-o软件
在polardb用户下使用sudo方式将polardb安装的rpm包卸载。

安装polardb-o软件包
在polardb用户下使用sudo rpm -i命令安装polardb软件包。

由于polardb软件升级后,生成的软件目录版本号发生了变化,对应的PGHOME目录也要更新,需要修改 polardb用户环境变量


检查升级后版本

检查polardb-o备库运行状态




停止Polardb-O备库进程
登录polardb老主库服务器,使用polardb用户执行停止命令

polardb进程已经被成功停掉,业务暂时无影响,主库可以提供读写服务。
在/usr/local目录下将polardb旧软件包备份出来。



由于polardb软件升级后,生成的软件目录版本号发生了变化,对应的PGHOME目录也要更新,需要修改 polardb用户环境变量

启动数据库服务


在CM集群管控节点执行下面命令查看数据集群状态:

在主库执行如下命令检查同步复制状态

主备库的polardb软件库软件已经升级成功,接下来模拟数据库回切到老主库,在CM管控服务器上面手动切换主备,完成主备切换测试。将192.168.58.131上面的主库切回192.168.58.130。


经过此次Polardb-O数据库补丁升级实践,Polardb-O数据库补丁升级过程要比Oracle补丁升级简单很多。如按先升备库,让主库提供服务,备库升完,然后将备库切换成主库,再继续提供服务,整体数据库补丁升级过程中不会中断业务。
本期作者|晏杰宏 主要负责数据库、中间件、大数据等基础软件建设、优化和业务保障工作。具有10年的电信与银行企业一线/二线运维服务管理经验。目前专注于云计算、中间件、开源技术和数据库等领域技术研究。持有Oracle OCP、weblogic OCP、Docker容器、Postgresql PGCE和阿里云ACP等认证。





