MySql主从同步延迟怎么办?

文章目录

    • 什么是MySQL主从架构
      • 主从架构的组成
      • 工作原理
      • 主从复制的步骤
      • 主从架构的优点
      • 主从架构的缺点
    • 什么是主从同步延迟
    • 为什么会导致主从延迟
    • 主从延时的排查和解决
    • 如果发现主从数据不一致怎么办?

我们常说的业务量越来越大,I/O访问频率过高,单机无法满足,就会用到读写分离之类的多库方案
所以我们首先要知道什么是MySQL主从架构

什么是MySQL主从架构

通过字面上来看,最起码要有两台数据库,并且他们的关系是主与从。MySQL主从复制就是将数据库群中一台或多台服务器作为主(master)数据库,其他数据库作为从(slave)数据库,然后指向主库,实时同步主库中的数据;当主库数据发生变化时,会将变化的数据实时同步到一个或多个从库。
这是一种数据库复制和分布式存储的解决方案,核心是将数据从一个主服务器(Master)复制到一个或多个从服务器(Slave)。这种架构主要用于数据备份、读写分离、负载均衡和高可用性。当然凡事都有两面性,如数据延迟和写入瓶颈,因此在设计系统时需要根据实际需求进行权衡
在这里插入图片描述

主从架构的组成

主服务器(Master):负责处理写操作(INSERT、UPDATE、DELETE 等),并将这些更改记录到二进制日志(binary log)中
从服务器(Slave):通过读取并应用主服务器的二进制日志来复制数据,通常用于处理读操作(SELECT)

工作原理

二进制日志(Binary Log):主服务器上的所有更改都会记录在一个二进制日志中
中继日志(Relay Log):从服务器从主服务器接收二进制日志的内容,并将其存储在自己的中继日志中
I/O线程:从服务器上的I/O线程负责从主服务器读取二进制日志,并写入中继日志
SQL线程:从服务器上的SQL线程负责读取中继日志,并将这些更改应用到从服务器的数据库中

主从复制的步骤

启动复制:在主服务器上启用二进制日志,并创建一个具有复制权限的用户
配置从服务器:配置从服务器,指定主服务器的地址、登录凭证等,并指定复制的起点
数据同步:在开始复制之前,通常需要将主服务器上的数据同步到从服务器
启动复制进程:在从服务器上启动复制进程,开始复制操作

主从架构的优点

数据冗余:提供数据备份,增加数据安全性
读写分离:通过从服务器处理读请求,可以提高系统的读取性能
负载均衡:分散数据库的访问压力,提高系统整体的处理能力
高可用性:当主服务器出现故障时,可以快速切换到从服务器,减少系统停机时间

主从架构的缺点

数据延迟:从服务器复制数据可能会有延迟,导致数据不一致的问题
故障恢复:当主服务器出现故障时,需要手动或通过自动化工具进行故障转移
写入瓶颈:所有的写操作都必须通过主服务器,可能会成为系统的瓶颈

什么是主从同步延迟

那么再说回什么是主从同步延迟,其实只要使用到了主从设计,基本都会有主从延迟的问题,只是说延迟的严重的程度不一样而已

从字面词汇解释:主从延时,通常指的是在数据库的主从复制架构中,从服务器(Slave)在接收并应用主服务器(Master)上的数据变更时所经历的时间延迟。具体来说,当主服务器上的数据发生变化后,这些变更需要通过复制机制同步到从服务器,而从服务器处理这些变更并完成数据同步所需的时间就构成了所谓的延时

一般来说几百毫秒以内可能都是能接受的范围

为什么会导致主从延迟

  1. 负载过高:这里其实不管主库还是从库的负载比较高,都可能会导致延迟。这里先额外说一个事情,很多人觉得主库负责写,从库只负责读,所以主库的配置需要高一点,从库低一点也无所谓,但其实这是一个误区,你要清楚所有写在主库的数据,在从库都需要写一遍,而且要求时延低的话,从库的压力其实并不比主库低。所以如果主库的并发量压力较高时,可能会导致从库来不及写入
    或者本身从库的负载较高了,因为从库都是串行去写入了,为了保证数据一致性,前面也说了其实从库就是把主库执行过的sql也同样的按顺序执行一次,如果中途可能因为执行其他查询或者某一个复杂的事务等,也可能导致无法及时处理同步过来的数据
  2. 网络延迟:主从服务器之间的网络延迟也会影响同步效率,这个字面也很好理解
  3. 硬件性能不足:如果从库的硬件性能不足,处理同步数据的速度会受到影响,这个在第一点里面也做过解释
  4. MySQL配置不合理:如sync_binlog和innodb_flush_log_at_trx_commit等配置不当可能导致延迟
  5. 锁等待:从库在执行同步操作时可能遇到锁等待,特别是大型查询语句

主从延时的排查和解决

先确认复制是否正常在运行,然后就是分析导致延时的原因

  • 使用show slave status命令,了解当前的延时情况
    • 查看Seconds_Behind_Master参数 NULL:表示I/O线程或SQL线程发生故障。0:表示主从复制状态正常,无延迟。正值:表示主从已经出现延时,数值越大,延迟越严重
    • Slave_IO_Running 和 Slave_SQL_Running:这两个状态都应该是Yes,如果不是,说明复制过程中断了
    • Last_IO_Error 和 Last_SQL_Error:如果复制出错,这里会显示错误信息
  • 检查主从机器之间的网络延迟,查看是否出现问题,如使用ping或traceroute命令来测试网络连接
  • 检查带宽限制,这个虽然一般不会出现,但是高负载时也可能带宽不够导致复制延迟
  • 检查主服务器的二进制日志和从服务器的中继日志文件大小,如果日志文件过大,可能会导致处理缓慢
  • 检查服务器资源是否有大的波动

解决办法就是先根据问题分析的原因来做不同的处理应对

  • 优化主从服务器的硬件配置,提升处理能力
  • 调整MySQL的复制配置,如修改sync_binlog和innodb_flush_log_at_trx_commit参数,以平衡数据安全性和性能
  • 网络优化,确保主从服务器之间的网络连接稳定且带宽充足
  • 业务逻辑优化,避免大事务和长耗时操作
  • 调整中继日志的配置,比如日志的大小和刷新策略,减少服务器的I/O压力

如果发现主从数据不一致怎么办?

1、首先是检查主从同步是否还在正常执行
2、检查延时问题,是否是延时导致的
3、检查最新的数据,看是最后的数据没同步到还是中间的数据没同步到
4、确认主从服务器的错误日志,看是否有相关的异常
5、如果数据不一致且无法通过简单的修复来解决,可能需要重新同步数据:
停止复制:在从服务器上执行STOP SLAVE;命令停止复制
数据备份与恢复:使用mysqldump或其他备份工具从主服务器备份数据,并在从服务器上恢复
重置复制:在从服务器上重置复制状态,重新配置复制并启动

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

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

相关文章

两工种入选!广东省产教评技能生态链企业自主评价评价机构名单和可评价职业

7月4日,广州市人力资源和社会保障局发布《广东省产教评技能生态链企业自主评价评价机构名单和可评价职业(工种)范围》广东泰迪智能科技股份有限公司“计算机程序设计员”、“人工智能训练师”入选。 详细职业名称与等级如下: 计算…

小白 | Linux安装java8

一、更新包列表 sudo apt update 二、安装 Java 8 sudo apt install openjdk-8-jdk 安装问题 遇见Unable to locate package openjdk-8-jdk错误 1.添加 PPA 存储库 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt update 2.重新尝试安装 sudo apt install openjdk8-jdk…

Zabbix动作与媒介

目录 前言 1. 动作的基本概念 2. 动作的常见用途 一. 环境准备 二. 创建动作 三. 添加媒介 前言 在 Zabbix 中,动作(Actions)用于在特定事件发生时执行一系列预定义的操作,比如发送通知、执行脚本等。动作通常与触发器&…

原神4.6单机版【完全无脑搭建】纯单机*稳定版*

版本介绍 版本3.7、4.0、4.0、4.4、4.5、4.6稳定版【过分追新并不稳,合理才完美】 独家原神,游戏内自带剧情任务,完美仿官,一比一完美复制! 已经拥有完美剧情、任务、副本、卡池、深渊、全物品、和全部功能和皮肤。 …

废水除铱,铱吸附树脂

废水除铱是环境保护和资源回收的重要任务之一。由于铱是贵金属之一,具有极高的经济价值,因此开发高效的废水除铱技术具有重要意义。以下是一些建议的废水除铱方法: 1. 沉淀法:向废水中添加适量的沉淀剂,如硫酸钠、氯…

redis学习(003 数据结构和通用命令)

黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 总时长 42:48:00 共175P 此文章包含第8p-第p9的内容 文章目录 数据结构通用命令keys命令del命令exists命令expire命令ttl命令 数据结构 通用命令 help generic …

光伏仿真系统不可忽视的功能:建模与仿真!

光伏仿真系统具备多种功能,能够支持对光伏发电系统进行深入研究和优化。为什么说建模与仿真功能是最不可忽视的呢?我们先来看看建模功能。 光伏仿真系统可以通过光伏插件或扩展程序,创建精确的光伏组件模型,包括光伏板、支架、逆变…

python输出个人自我介绍

需求 使用input()函数从键盘输入姓名、年龄,座右铭,并使用print()函数输出到控制台 nameinput(请输入您的姓名:) ageinput(请输入您的年龄:) mottoinput(请输入您的座右铭:) print(------------自我介绍------------…

5G 连接存在漏洞,移动设备易被绕过或受到 DoS 攻击

无线服务提供商优先考虑正常运行时间和延迟时间,有时以牺牲安全性为代价,允许攻击者利用这一漏洞窃取数据,甚至更糟。 由于 5G 技术存在漏洞,移动设备面临着数据被肆意窃取和拒绝服务的风险。 在即将于拉斯维加斯举行的「黑帽 2…

Pandas 入门 15 题

Pandas 入门 15 题 1. 相关知识点1.1 修改DataFrame列名1.2 获取行列数1.3 显示前n行1.4 条件数据选取值1.5 创建新列1.6 删去重复的行1.7 删除空值的数据1.9 修改列名1.10 修改数据类型1.11 填充缺失值1.12 数据上下合并1.13 pivot_table透视表的使用1.14 melt透视表的使用1.1…

C#桌面应用开发:番茄定时器

C#桌面应用开发:番茄定时器 1、环境搭建和工程创建: 步骤一:安装visual studio2022 步骤二:新建工程 2、制作窗体部件 *踩过的坑: (1)找不到工具箱控件,现象如下:…

软件测试之接口自动化测试实战(完整版)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 自从看到阿里云性能测试 PTS 接口测试开启免费公测,就想着跟大家分享交流一下如何实现…

通义灵码入选 2024 世界人工智能大会最高荣誉「镇馆之宝」

7 月 4 日,2024 上海世界人工智能大会正式开幕,并揭晓了今年的「镇馆之宝」名单,通义灵码入选,是首个入围该名单的 AI 编程助手。 镇馆之宝是世界人工智能大会展览的最高荣誉,从科技含量、市场前景、创新性以及社会经济…

OV通配符证书用于什么单位

OV(Organization Validation)通配符SSL证书是一种专门为组织或企业设计的SSL证书类型,它不仅提供了标准的SSL加密功能,还包含了对组织身份的验证。这种证书非常适合以下几种类型的单位使用: 企业级网站: …

【稳定检索/投稿优惠】2024年教育、人文发展与艺术国际会议(EHDA 2024)

2024 International Conference on Education, Humanities Development and Arts 2024年教育、人文发展与艺术国际会议 【会议信息】 会议简称:EHDA 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:中国北京 会议官网&#…

直饮水也要烧开饮用吗?

某天上班,同事跟我说他的爸爸喝瓶装水都要烧开了后再喝。 这种行为震惊了小编。 好像很多上一辈的人有种执念,那就是水一定要烧开了喝。 不仅是因为习惯,也是他们的观念已经根深蒂固,认为烧开后的水喝起来才健康。 其实水不一…

华火电燃喷火单灶再荣获中国质量认证中心 CQC 权威证书,引领行业新高度

近日,华火传来了一则令整个行业瞩目的重大喜讯:其电燃喷火单灶“再度”成功荣获中国质量认证中心(CQC)权威证书。这一里重大程碑式的成就,不仅是对华火产品卓越品质的高度认可,更是华火在品牌发展道路上的一…

uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名

项目场景: uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据getIndex点击事件获取点击的地区下标和地区名 例如: 问题描述 官方给的文档有限,需要自己下载地图json数据然后自己渲染和编写鼠标悬浮显示内容以及获取点击地址…

go语言day08 泛型 自定义错误处理 go关键字:协程

泛型: 抛错误异常 实现error接口类型 用java语言解释的话,实现类需要重写error类型的抽象方法Error().这样就可以自定义异常处理。 回到go语言,在Error()方法中用*argError 这样一个指针类来充当error接口的实现类。 在f2()方法中定义返回值…

荣耀电脑误删U盘文件?别慌,这里有找回方法

荣耀电脑误删U盘文件怎么找回?在日常工作和生活中,U盘是我们存储和传输数据的重要工具之一。然而,在使用荣耀电脑时,如果不小心误删了U盘中的文件,可能会给我们带来不小的困扰。但是,别慌!本文将…