openGauss

开源数据库

openGauss社区官网

开源社区

MogDB 2.0.1补丁升级方案

云和恩墨2022-06-27MogDB 2.0.1补丁升级方案

MogDB 2.0.1 补丁升级方案

本文出处:https://www.modb.pro/db/420586

适用版本

MogDB 2.0.1

MogDB 2.1 及以后的版本不存在这个问题。

补丁版本

MogDB 2.0.3(联系云和恩墨获取补丁包)

修复内容

MogDB 主备架构,当备库启动归档(archive_mode = on)后,walsender 线程需要发送 archive lsn 消息。此逻辑执行时,用于获取备库列表的链表数据结构用完后没有被释放,因此产生了内存泄漏,这导致 walsender 产生了缓慢的内存占用增长的现象。

适用数据库安装方式

1、手工安装(om)

2、标准安装(om)

前提条件

1、数据库稳定运行,各功能及状态正常

2、允许数据库暂停对外提供服务

升级步骤

两种升级方式:

1、数据库可以停止连续对外服务,主库关闭后,替换数据库安装包后再启动

2、数据库不能停止连续对外服务,可以先升级备库,然后通过 switchover 切换主备角色,将备库提升为主库继续对外提供服务,切换过程中会短暂停止对外提供服务

解压安装包

--将MogDB2.0.3安装包解压到/opt/mogdb203(目录可自定义)
mkdir -p /opt/mogdb203

--解压安装包
tar -xvf MogDB-2.0.3-CentOS-x86_64.tar.gz -C /opt/mogdb203/
cd /opt/mogdb203

--再次解压并修改属组
tar -xvf MogDB-2.0.3-CentOS-64bit.tar.bz2
chown -R omm: /opt/mogdb203

--查看bin和lib目录
ls -l |egrep -i 'bin|lib'
drwxr-xr-x 3 omm dbgrp     4096 Jun 17 00:25 bin
drwxr-xr-x 5 omm dbgrp     4096 Jun 17 00:25 lib

关闭 MogHA

如果主备节点部署了高可用工具 MogHA,在操作之前需要先收工停止,否则 MogHA 会自动拉起关闭的数据库节点。

sudo systemctl stop mogha systemctl status mogha

关闭数据库

--单节点 gs_ctl -D $PGDATA stop --所有节点 gs_om -t stop

替换安装包

仅需要替换 bin 目录和 lib 目录即可

--进入MogDB的安装目录 或 app目录
mv bin bin_201 && cp -r /opt/mogdb203/bin .
mv lib lib_201 && cp -r /opt/mogdb203/lib .

--om安装的数据库还需要copy一下文件
cp bin_201/cluster_static_config bin/
cp bin_201/upgrade_version bin/

备库执行 switchover(可选)

gs_ctl switchover -D $PGDATA --刷新配置文件,每次切换必做步骤 gs_om -t refreshconf

启动数据库

--手工启动主库 gs_ctl -D $PGDATA start -M primary --手工启动备库 gs_ctl -D $PGDATA start -M standby --gsom启动,任何节点都可以 gs_om -t start

启动 MogHA

sudo systemctl start mogha systemctl status mogha

验证

数据库状态

gs_ctl query -D $PGADATA 或 gs_om -t status --detail

walsender 占用内存情况

定期执行观察

select contextname,pg_size_pretty(sum(totalsize)),pg_size_pretty(sum(freesize))
from gs_session_memory_detail
where contextname ='Wal Sender';