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

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

采用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitlab、jenkins安装及使用文档二

安装 jenkins IP地址操作系统服务版本192.168.75.137Rocky9.2jenkins 2.450-1.1 jdk 11.0.22 git 2.39.3192.168.75.138Rocky9.2gitlab-ce 16.10.0 结合上文 jenkins安装 前期准备: yum install -y epel-release yum -y install net-tools vim lrzsz wget…

WSL访问adb usb device

1.Windows上用PowerShell运行: winget install --interactive --exact dorssel.usbipd-win 2.在WSLUbuntu上终端运行: sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-too…

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案,类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件,提供了Git版本控制系统的基本功能,包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

酷开科技OTT大屏营销:开启新时代的营销革命

随着互联网技术的不断发展和普及,大屏已经成为越来越多家庭选择的娱乐方式。在这个背景下,酷开科技凭借其强大的技术实力和敏锐的市场洞察力,成功地将大屏转化为一种新的营销渠道,为品牌和企业带来了前所未有的商业机会。 酷开科技…

【数据结构与算法篇】双链表实现

【数据结构与算法篇】双链表实现(近300行实现代码) 🥕个人主页:开敲🍉 🔥所属专栏:数据结构与算法🍅 🌼文章目录🌼 1. List.h 头文件的声明 2. List.c 源文…

etcd相关知识整理归纳 —— 筑梦之路

什么是etcd? Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于 Go 语言实现。 名字由来,它源于两个方面,unix的“/etc”文件…

软件概要设计说明书实际项目编制案例(直接套用)

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 3.2系统管理 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口…

【word2pdf】Springboot word转pdf(自学使用)

文章目录 概要整体介绍具体实现官网pom文件增加依赖 遇到的问题本地运行OK,发布到Linux报错还是本地OK,但是Linux能运行的,但是中文乱码 小结 概要 Springboot word 转 pdf 整体介绍 搜了一下,发现了能实现功能的方法有四种 U…

手写一个简单的 OrbitControls 轨道控制器

手写一个简单的 OrbitControls 轨道控制器 相信使用过THREE.JS的同学,都知道 OrbitControls 这个的轨道控制器,他是绕着一个观察点,来进行什么什么的… 反正就是那么个意思。 所以很明显OrbitControls的运动轨迹是一个球体,他是绕…

Unity面经(自整)——Unity基础知识

Unity基础知识 1. Image和RawImage的区别 Image比RawImage更耗性能。Image只能使用sprite属性的图片。而RawImage什么都可以使用 2. Unity3D中的碰撞器Collider和触发器Trigger的区别 碰撞器是触发器的载体,而触发器是碰撞器上的一个属性。 如果IsTrigger为fal…

TDengine taosAdapter启用HTTPS

HTTPS (Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加…

算法打卡day45|动态规划篇13| Leetcode 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

算法题 Leetcode 300.最长递增子序列 题目链接:300.最长递增子序列 大佬视频讲解:300.最长递增子序列视频讲解 个人思路 没什么思路,菜就多练! 解法 动态规划 “子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而…

Razzashi Raptor

拉扎什迅猛龙 Razzashi Raptor 95000金(游戏币)比老虎便宜多了,捡漏啊 为啥我开团都不出,很生气,去打架!!

ArcGIS Desktop使用入门(三)图层右键工具——标注要素、将标注转换为注记

系列文章目录 ArcGIS Desktop使用入门(一)软件初认识 ArcGIS Desktop使用入门(二)常用工具条——标准工具 ArcGIS Desktop使用入门(二)常用工具条——编辑器 ArcGIS Desktop使用入门(二&#x…

【Godot4自学手册】第三十六节圆形移动或扇形移动的铁球

在第三十四节我实现了来回无限滚动的伤害铁刺球,这一节我准备实现一个圆形移动或扇形移动,并带有链条的铁球。效果如下: 一、实现原理 绕一点做圆周运动,简单的说就是: 每一帧根据旋转的角度计算出下一个位置的坐标…

Redis--16--Spring Data Redis

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Spring Data Redishttps://spring.io/projects/spring-data-redis 1.依赖2.RedisTemplate3.案例 序列化1.默认是 JdkSerializationRedisSerializer2.添加Redis配置文…

关于阿里云centos系统下宝塔面板部署django/中pip install mysqlclient失败问题的大总结/阿里云使用oss长期访问凭证

python版本3.12.0 项目的版本依赖 问题1 解决方案 sudo vim /etc/profile export MYSQLCLIENT_CFLAGS"-I/usr/include/mysql" export MYSQLCLIENT_LDFLAGS"-L/usr/lib64/mysql" Esc退出编辑模式 :wq退出并且保存 问题二 说是找不到 mysql.h头…

Html网页小游戏源代码

Html网页小游戏源代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Jello Jumping Game</title><meta name"viewport" content"widthdevice-width, initial-scale1"&…

[蓝桥杯] 岛屿个数(C语言)

提示&#xff1a; 橙色字体为需要注意部分&#xff0c;红色字体为难点部分&#xff0c;会在文章“重难点解答”部分精讲。 题目链接 蓝桥杯2023年第十四届省赛真题-岛屿个数 - C语言网 题目理解 这道题让我们求岛屿个数&#xff0c;那么我们就应该先弄懂&#xff0c;对于一…

基于小程序实现的医院预约挂号系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…