server_id 引发的 MySQL 级联复制同步异常

news2025/2/6 11:44:15

MySQL 级联复制的坑,我帮你们踩了。

作者:蒋士峰,爱可生 DBA 团队成员,熟悉 MySQL,Oracle 等数据库。每天的积累,时间久了,会带来不一样的收货。

爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

本文约 1200 字,预计阅读需要 3 分钟。

业务场景

在日常运维的某个系统下,由于之前数据库主机所用硬盘是传统机械硬盘,容量小,传输速度低,并且数据库服务器整体性能不高。随着业务访问量的增加,现有数据库服务器无法满足需求,所以需要搭建一套高性能的数据库服务器,并且所用硬盘是 SSD。

由于原先数据库采用的是主从复制架构,所以新搭建的数据库也要采用主从架构。跟旧数据库集群组成一套级联复制的 MySQL 数据库集群(旧集群的主库作为主,新集群的主库为旧集群主库的从,新集群从库还继续为新集群主库的从),先进行数据同步一段时间,再找时间点进行业务割接。

由此从 旧集群主库--->新集群主库--->新集群从库 之前形成了一条类似于链条式的同步关系,具体关系图如下:

问题的发现

搭建完成新集群,做级联复制的时候,没有发现任何错误,数据同步也是正常的。大概过了 15 天进行数据比对的时候,发现了一个重要问题:新集群的主库可以正常同步旧集群主库的新增数据,但是新集群的从库无法同步新集群主库的新增数据。

如图所示:

问题分析

  1. 由于从新集群的主库到新集群从库无法正常同步,所以我们先分析了新集群主库的 binlog 日志是否开启,还有 log_slave_update 是否也开启了,只有开启了,才能产生 binlog 做主从同步。发现都是开启的,所以只能从其他方面去看。

  2. 除此之外,我们还专门在旧集群主库上进行了创建库,插入数据操作,观察 positon 位置点的变化信息。

创建库,插入数据之前:

创建库,插入数据之后:

重要问题:发现插入数据的时候,旧集群主库和新集群主库的 binlog 位置点都发生了变化,只有新集群的从库的 binlog 位置点一直没变,这明显是不正常的。

  1. 前面也确认了 binlog 相关参数都是开启的。所以此时,我们只有把三台数据库的配置文件 my.cnf 拿出来对比一下了,检查一下是不是配置文件的相关参数出了问题。

    经过对比确认参数,发现了一个主要的问题:旧集群的主库的 server_id 为 1,新集群的主库的 server_id 为 2,新集群的从库的 server_id 为 1。

    这意味着什么?旧集群主库的 server_id 与新集群从库的 server_id 重复了。但是问题又来了,当时做主从的时候完全没有报错啊。那么,级联复制中,是不是也要保证所有的 server_id 不同呢?

  1. 带着这个疑问,我们专门在本地环境搭建了一套类似于生产环境的级联复制,并且随意改动 server_id,然后插入数据,观察一下数据同步情况。验证了一条重要信息:级联复制中,所有参与构建集群的 MySQL 数据库 server_id 不能相同,一旦相同,数据同步就会出现故障。

产生这一问题的根源

在项目中,数据集群众多,手动安装工作量较大,所以本次安装数据库也是采用自动化安装的,分配 server_id 的时候,也是 1 或者 2 随机分配。所以才导致了本次新集群从库 server_id 跟旧集群冲突了。

整改步骤

数据已经同步了 15 天了,但是我们的 binlog 只保存了 14 天,所以现在只有先修改一下 server_id,保证该级联复制中所有数据库的 server_id 都是不同的;然后再备份一下旧集群主库,恢复到新集群,重做级联复制。

带来的启示

  1. 使用级联复制,一定要保证所有参与数据库的 server_id 不同。
  2. 要确 binlog 日志以及相关参数是开启的。
  3. 由于级联复制存在各种小问题,所以日常生产中尽量少用级联复制。

更多技术文章,请访问:https://opensource.actionsky.com/

关于 SQLE

SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。

SQLE 获取

类型地址
版本库https://github.com/actiontech/sqle
文档https://actiontech.github.io/sqle-docs/
发布信息https://github.com/actiontech/sqle/releases
数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse

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

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

相关文章

SOLIDWORKS 2024教育版全套多少钱?

SOLIDWORKS 2024教育版全套是一款专为教育机构和学生设计的3D CAD设计软件套装。它集合了SOLIDWORKS的核心功能和工具,旨在帮助学生在学习和实践过程中掌握先进的工程设计和制造技术。对于教育机构和学生而言,了解SOLIDWORKS 2024教育版全套的价格成为了…

[lesson35]函数对象分析

函数对象分析 客户需求 编写一个函数 函数可以获得斐波那契数列每项的值每调用一次返回一个值函数可根据需要重复使用 存在的问题 函数一旦开始调用就无法重来 静态局部变量处于函数内部,外界无法改变函数为全局函数,是唯一的,无法多次独…

【系统分析师】系统安全分析与设计

文章目录 1、安全基础技术1.1 密码相关1.1.1对称加密1.1.2非对称加密1.1.3信息摘要1.1.4数字签名1.1.5数字信封 1.2 PKI公钥体系 2、信息系统安全2.1 保障层次2.2 网络安全2.2.1WIFI2.2.2 网络威胁与攻击2.2.3 安全保护等级 2.3计算机病毒与木马2.4安全防范体系 1、安全基础技术…

Linux下kafka单机版搭建

1.zookeeper的安装 这里使用3.6.4版本 前提:服务器已经安装了jdk,zookeeper运行需要jdk环境 1.1创建放zookeeper的目录 #创建目录 mkdir -p /usr/local/zookeeper#赋予权限 chmod 777 /usr/local/zookeeper1.2安装包的下载 #这里推荐去官网下载 https:…

宝塔使用笔记

1.配置ssl 验证方式:文件验证和dns验证都试一下 参考: https://app.applebyme.cn/cloud/https/23050.html

FiT 基于 Pulsar 在金融在线高并发场景的最佳实践

关于 FiT 腾讯金融科技(Tencent Financial Technology)是腾讯公司提供移动支付与金融服务的综合业务平台。业务领域包括移动支付、投资理财、民生服务和国际化等,作为支付业务的基石和底座,FiT 致力于建设和发展完善的支付平台能…

C/C++基础----数组和引入指针

数组 数组的定义 语法: 类型 变量名[数组大小] {数组内容1,数组内容2}; int array[5] {1,2,3,4,5};代码 int main(){// 定义数组,大小不写,数组内默认有多少元素大小就为多少int array_a[] {1, 2, 3, 4, 5, 6};// 定义数组长度为5&#x…

高效、稳定、兼容:中国星坤MINI PCIE连接器优势明显

电子设备的性能要求日益提高,尤其是在数据传输和连接稳定性方面。中国星坤推出的MINI PCIE连接器,以其出色的性能和显著的优势,迅速成为行业内的佼佼者,为现代电子设备提供了高效、稳定的连接解决方案。 在性能方面,中…

利物浦都在用的AI教练,真能拯救国足吗?

不久之前,在亚洲杯一场未胜之旅结束后,国足又又又一次陷入了选帅争议。而国足新帅伊万科维奇两场主胜客平新加坡,成绩也实在谈不上亮眼。这种情况下,广大球迷又开始争论,究竟哪位教练才能拯救国足。至少要止住目前一路…

时隔一年,再次讨论下AutoGPT-安装篇

AutoGPT是23年3月份推出的,距今已经1年多的时间了。刚推出时,我们还只能通过命令行使用AutoGPT的能力,但现在,我们不仅可以基于AutoGPT创建自己的Agent,我们还可以通过Web页面与我们创建的Agent进行聊天。这次的AutoGP…

java智慧校园家校互通小程序源码 Android 7.16.+小程序原生开发的全套智慧校园电子班牌云平台源码

智慧校园云平台电子班牌系统,利用先进的云计算技术,将教育信息化资源和教学管理系统进行有效整合,实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统,以考勤、课表、通知、家校互通等功能为切入点…

如何准备2024年汉字小达人:18道历年考题示例和解析、备考提醒

现在距离2024年第11届汉字小达人比赛还有六个多月的时间,如何利用这段时间有条不紊地备考呢?我的建议是两手准备:①把小学1-5年级的语文课本上的知识点熟悉,重点是字、词、成语、古诗。阅读理解不需要。②把历年真题刷刷熟&#x…

第二证券今日投资参考:铜价持续上涨 医药政策向好态势明显

昨日,A股在金融板块的带动下强势拉升,沪指涨超1%。到收盘,沪指涨1.26%报3057.38点,深证成指涨1.53%报9369.7点,创业板指涨1.85%报1795.52点,上证50指数涨2.1%;两市合计成交9971亿元,…

Oracle和PG数据库临时表的差异,PG数据库如何删除临时表

现实的开发过程中使用 PG 数据库删除临时表发现如下报错,提示表 xxx 不存在: 问题原因: 调用删除语句,但是临时表不存在了。 解决方案: PG下用下面的方式来删除临时表或不进行删除(会话级临时表会自动删除…

mac基础操作、快捷、软件快捷方式

欢迎来到我的博客,代码的世界里,每一行都是一个故事 mac基础操作、快捷、软件快捷方式 前言mac快捷操作快捷查找切换页面页面缩略访达和命令端切换创建文件夹创建文件删除文件/文件夹获取文件的路径移动文件或文件夹复制文件命令端常用命令 前言 主要是方…

姿态估计-人脸识别mesh-3d手势识别-3d目标检测-背景分割-人脸关键点

往期热门博客项目回顾:点击前往 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上…

用html画一个睡觉的熊动画

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>睡觉的熊动画</title><link rel"stylesheet" href"./style.css"> </head><body><div id"contain…

第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛部分WP

这里写目录标题 1.理论题2.数据安全&#xff1a;3.数据分析&#xff1a;数据分析&#xff08;1&#xff09;数据分析&#xff08;3&#xff09; 前言&#xff1a;第一次参加数信杯&#xff0c;很荣信晋级线下&#xff0c;有点难度好多都要写脚本ovo。 1.理论题 略 2.数据安全…

git操作基本命令

Git命令操作&#xff1a; 1、服务器上面有新的修改&#xff0c;pull出现错误操作如下 git stash git pull origin master git stash pop 2、删除本地一个文件test.py,想重新download远程服务器最新的文件 #git checkout test.py 3、查看当前处于哪一个分支 #git …

中国八大古都,分别是哪8个?

中国历史上统一王朝或者在全局范围内看呈鼎立之势的大的政权的首都&#xff0c;称古都&#xff0c;又称都城、国都等&#xff0c;是古代王朝的政治中心&#xff0c;也是经济和文化中心。 1、西安 西安&#xff0c;古称长安&#xff0c;是中国历史上建都时间最长、建都朝代最多…