循序渐进丨MogDB 数据库带级联从库的集群切换后如何保持原有架构?

发布于:2024-04-16 ⋅ 阅读:(31) ⋅ 点赞:(0)

生产数据库运行过程中可能会涉及到升级或者打补丁,导致各节点的角色有计划的发生改变。如果集群内角色发生改变,是否还能保持原有架构继续对外提供服务呢?我们来做一下测试。

采用2+2模式模拟同城两机房部署4节点 MogDB 数据库集群,即主机房是primary节点和1个备库,同城节点是1个备库和1个级联从库。

测试的目标是:无论我们怎么切换主库,希望在集群节点都正常运行的情况下始终保持这个2+2的架构。接下来我们以switchover的方式来进行切换测试。

1

测试

数据库准备

利用PTK一键安装 MogDB 进行数据库安装。安装后集群的初始状态是1主2备1级联。如下图所示,45是主库,46和47是备库,48是级联从库。

695af2831c8c05dd80bdb68edb97483b.png

03cc92aa4b9f764d209f1150fb3d42a5.png

各节点同步角色配置

45(dn_6001): synchronous_standby_names='first 2 (dn_6002,dn_6003)'
46(dn_6002): synchronous_standby_names='first 2 (dn_6001,dn_6003)'
47(dn_6003): synchronous_standby_names='first 2 (dn_6001,dn_6004)'
48(dn_6004): synchronous_standby_names='first 2 (dn_6001,dn_6003)'

本地机房切主

将主库由45切到46,执行ptk cluster switchover -n switchtest -H 172.16.3.46

14a2f4efc2807e1264bc54cae00b5575.png

在46上查询同步状态,45和47是同步备,48是级联从,符合预期。

fba82141a69cfbb8aad997ce15f73f57.png

同城机房切主

将主库由46切到47,执行ptk cluster switchover -n switchtest -H 172.16.3.46

ebd2112c4d2dae982f42352554ac5479.png

在47上查询同步状态,45是同步备,46是异步备,48是Need repair状态,不符合预期。

562ecd0ed6abcbab509696bd1d10b9e7.png

原因分析

  • 级联从永远是级联从,不会将角色自动变为同步备或异步备;

  • 备库可以升级为主库,但不会变为级联从。

处理步骤

  • 修改数据库参数,将需要变成级联从的replconninfo参数添加iscascade=true,将其他replconninfo中的iscascade=true去掉;

  • 重启原级联节点和新级联节点,重启的方式有两种,一种是直接通过gs_ctl命令重启,另一种是修改ptk的配置参数后重启。

47节点修改参数前后:

397ad4559cb51fe390aedea7452863d6.png

ecdf6cb8d7067deda6bc1c42770b0fc5.png

48节点修改参数前后,需要添加其他备库同步信息:

9565c4202ed87b2e4b3d69ff5ef0120c.png

46节点修改参数前后,需要去掉其他同步备信息:

00bb9d80207bfc005e69e258a4571465.png

45节点修改参数前后:

d9cd806091bdc116cf9d34294227a360.png

重启新级联节点

df9c01c8f1d0eebd34b9237b0e616455.png

重启原级联节点

09098001c690ebcf37f8a4d7e15acf7c.png

2

结论

  • 如果集群中不存在级联从,不需要人为参与;

  • 如果集群中有级联从,需要手工修改数据库参数,并且需要对原级联和新级联节点进行重启。

关于作者

高云龙,云和恩墨南北大区服务总监,擅长 PostgreSQL / Greenplum / Citus 数据库架构设计、故障处理、运维优化及数据库迁移,乐于数据库技术分享,曾任职去哪儿网及某金融公司,负责核心数据库架构建设,目前在云和恩墨从事 PG / MogDB / openGauss 数据库交付管理工作。

c40e54aa714e6388c9554e47fb2579ba.gif

数据驱动,成就未来,云和恩墨,不负所托!


云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司总部位于北京,在国内外35个地区设有本地办公室并开展业务。

云和恩墨以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。

自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。

在云化、数字化和智能化的时代背景下,云和恩墨始终以正和多赢为目标,感恩每一位客户和合作伙伴的信任与支持,“利他先行”,坚持投入于数据技术核心能力,为构建数据驱动的智能未来而不懈努力。

我们期待与您携手,共同探索数据力量,迎接智能未来。

f19eeebb05ef7ca9b579063af5731a04.gif