循序渐进丨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.rhkb.cn/news/306916.html

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

相关文章

软考 — 系统架构设计师 - 嵌入式真题

问题1: 可靠度表示系统在规定条件下,规定的时间内不发生失效的概率。 失效率表示系统运行到此时从未出现失效的情况下,单位时间内系统出现失效的概率 问题 2: 动态冗余又称为主动冗余,通过故障检测,故障定…

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…

ChatGPT加持,需求分析再无难题

简介 在实际工作过程中,常常需要拿到产品的PRD文档或者原型图进行需求分析,为产品的功能设计和优化提供建议。 而使用ChatGPT可以很好的帮助分析和整理用户需求。 实践演练 接下来,需要使用ChatGPT 辅助我们完成需求分析的任务 注意&…

【2024年认证杯】A题详细思路+数据(来源)+成品论文+模型代码(matlab+python)

2024年认证杯A题 解题思路 ⭐⭐第一问题分析第二问题分析第三问题分析 数据与数据来源🎉🎉指标解释数据来源 成品参考论文😊😊python/ matlab 代码🚀🚀 解题思路 ⭐⭐ 这个题目要求我们围绕人造保暖纤维的…

linux学习:标准IO

目录 接口 打开文件 关闭文件 读写 每次一个字符的读写标准 IO 函数接口 每次一行的读写标准 IO 函数接口 每次读写若干数据块的标准 IO 函数接口 获取或设置文件当前位置偏移量 标准格式化 IO 函数 系统 IO 的最大特点一个是更具通用性,不管是普通文件、管…

mac上如何安装python3

mac上如何安装python3? 安装homebrew 在终端执行命令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 执行完成后,homebrew和pip等工具就自动安装好了。 接下来安装python3.在终端…

AndroidAutomotive模块介绍(三)CarService服务

前言 上一篇文档总结 Android Automotive 框架的 APP 和 API 部分内容,本篇文档将会继续根据 Android Automotive 框架结构,总结 Framework 层 CarService 服务的内容。 本文档对 Android Automotive Framework 层服务将会按照如下顺序展开描述&#x…

分布式强化学习

标题 易混淆概念联邦学习与强化学习1)联邦学习应用于强化学习2)强化学习应用于联邦学习 时空图卷积网络(ST-GCN)基本概念结合训练 易混淆概念 DistributionalRL是分布RL,不是分布式RL。分布RL是把Q值从一个期望构建成…

MySQL——创建和插入

一、插入数据 INSERT 使用建议; 在任何情况下建议列出列名,在 VALUES 中插入值时,注意值和列的意义对应关系 values 指定的值顺序非常重要,决定了值是否被保存到正确的列中 在指定了列名的情况下,你可以仅对需要插入的列给到…

【链表】1移除链表元素

这里写自定义目录标题 一、题目二、先考虑头结点,再考虑非头结点三、虚拟头结点解决 一、题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 二、先考虑头结点,…

Okhttp全链路监控

目标: 1).监控网络请求的各个阶段 2)获取每一个阶段的耗时和性能,用于性能分析。包括dns解析,socket连接时间,tls连接时间,请求发送时间,服务器接口处理时间,应答传输时…

机器学习-09-图像处理02-PIL+numpy+OpenCV实践

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中图像处理技术。 参考 【人工智能】PythonOpenCV图像处理(一篇全) 一文讲解方向梯度直方图(hog) 【杂谈】计算机视觉在人脸图像领域的十几个大的应用方向&…

线性代数

标量、向量、张量 标量占据的是零维空间向量占据的是一维数据,例如语音信号矩阵占据的是二维数组,例如灰度图像张量占据的是三维乃至更高维的数组,例如RGB图像和视频 内积(点乘)概述 内积(inner product) 计算的则是两个向量之间的关系 两…

gpt系列概述——从gpt1到chatgpt

GPT建模实战:GPT建模与预测实战-CSDN博客 OpenAI的GPT(Generative Pre-trained Transformer)系列模型是自然语言处理领域的重要里程碑。从2018年至2020年,该公司相继推出了GPT-1、GPT-2和GPT-3,这些模型在文本生…

kali工具----枚举工具

一、枚举工具 枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关信息。本节将介绍DNS枚举和SNMP枚举技术。DNS枚举可以收集本地所有DNS服务和相关条目。DNS枚举可以帮助用户收集目标组织的关键信息,如用户名、计算机名和IP地址等,…

前端js基础知识(八股文大全)

一、js的数据类型 值类型(基本类型):数字(Number)、字符串(String)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol,大数值类型(BigInt) 引用数据类型:对象(Object)、数组…

智能售货机:引领便捷生活

智能售货机:引领便捷生活 在这个科技迅速进步的时代,便捷已成为生活的必需。智能售货机作为技术与便利完美结合的产物,正逐渐改变我们的购物方式,为都市生活增添新的活力。 智能售货机的主要优势是它的极致便利性。不论是在地铁…

javaweb day29

事务 写法 事务的四大特性

AndroidAutomotive模块介绍(四)VehicleHal介绍

前言 前面的文章中,描述了 Android Automotive 的框架中应用、Framework 层服务等知识,本篇文章将会继续按照 Android Automotive 框架介绍 Vehicle Hal 层服务的内容。 上一篇:AndroidAutomotive模块介绍(三)CarSer…

如何选择适用于Mac的文件恢复软件?适用于 Mac 的最佳数据恢复软件清单

有人会说,我们的数字生活正变得几乎和我们的物理生活一样重要。我们在线工作,将记忆保存在数码照片库中,在信使中交流,并保留各种文档的数字扫描。 每个人都知道备份是必不可少的。建议每天至少同步一个数字备份(例如…