MySQL-8.0.42 主从延迟常见原因及解决方法

目录

1 查看从库延时方法

2 如何分析主从延迟

3 主从延迟的常见原因及解决方法


1 查看从库延时方法


mysql> show slave status \G
*************************** 1. row ***************************
             Slave_IO_Running: Yes     #两个yes说明主从复制正常
            Slave_SQL_Running: Yes
        Seconds_Behind_Master: 0       #表示延时时间,单位是秒,0表示没有延时

2 如何分析主从延迟


2.1 从库服务器的负载情况:从CPU、内存、磁盘IO和网络的资源使用情况入手,重点关注CPU和磁盘IO。
#查看CPU和内存使用信息
root@u24-mysql-52:~# top
top - 21:12:55 up 26 min,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 214 total,   1 running, 213 sleeping,   0 stopped,   0 zombie
%Cpu(s):  7.1 us,  7.1 sy,  0.0 ni, 82.1 id,  3.6 wa,  0.0 hi,  0.0 si,  0.0 st 
MiB Mem :   3866.7 total,   2817.9 free,    859.0 used,    416.0 buff/cache     
MiB Swap:   3866.0 total,   3866.0 free,      0.0 used.   3007.7 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                              
   1600 root      20   0   11912   5660   3484 R  14.3   0.1   0:00.05 top                                  
      1 root      20   0   22104  13076   9492 S   0.0   0.3   0:09.19 systemd    

参数说明
load average: 0.00, 0.01, 0.05   
#1 分钟、5 分钟、15 分钟的平均负载

%Cpu(s):  7.1 us,  7.1 sy,  0.0 ni, 82.1 id,  3.6 wa,  0.0 hi,  0.0 si,  0.0 st
#us (user):用户空间进程的 CPU 占用百分比(如应用程序)。
#sy (system):内核空间进程的 CPU 占用百分比(如系统调用)。  


MiB Mem :   3866.7 total,   2817.9 free,    859.0 used,    416.0 buff/cache
#total:总内存/交换空间大小。
#free:完全未使用的内存。
#used:已使用的内存(包括缓存和缓冲区)。
#buff/cache:内核缓存和缓冲区占用的内存(可被快速释放供程序使用)。
#avail Mem:估算的可用内存(包含缓存和缓冲区的可回收部分)。


#查看磁盘IO
root@u24-mysql-52:~# iostat 
Linux 6.11.0-26-generic (u24-mysql-52)  05/30/2025      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.74    0.05    1.30    0.06    0.00   97.85

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
loop0             0.00         0.00         0.00         0.00         10          0          0
sda               5.97       189.95        57.82         0.00     465358     141664          0
sr0               0.02         0.85         0.00         0.00       2092          0          0

#查看网络
#显示网络软件栈统计和状态
root@u24-mysql-52:~# netstat -alutp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 _localdnsstub:domain    0.0.0.0:*               LISTEN      646/systemd-resolve 
tcp        0      0 _localdnsproxy:domain   0.0.0.0:*               LISTEN      646/systemd-resolve 
tcp        0      0 u24-mysql-52:57448      192.168.254.51:mysql    ESTABLISHED 1469/mysqld         
tcp6       0      0 [::]:33060              [::]:*                  LISTEN      1469/mysqld         
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1/init              
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      1469/mysqld         
tcp6       0    140 u24-mysql-52:ssh        192.168.254.1:63340     ESTABLISHED 1298/sshd: root@pts 
udp        0      0 _localdnsproxy:domain   0.0.0.0:*                           646/systemd-resolve 
udp        0      0 _localdnsstub:domain    0.0.0.0:*                           646/systemd-resolve 

2.2 主从复制状态
#主库状态
mysql> show master status \G
*************************** 1. row ***************************
             File: mysql-bin.000010
         Position: 197
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 5d7fd409-3bd6-11f0-9d66-000c29704177:1
1 row in set (0.00 sec)

#从库状态
mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.254.51
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000010
          Read_Master_Log_Pos: 197
               Relay_Log_File: u24-mysql-52-relay-bin.000005
                Relay_Log_Pos: 413
        Relay_Master_Log_File: mysql-bin.000010
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 197
              Relay_Log_Space: 886
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 51
                  Master_UUID: 5d7fd409-3bd6-11f0-9d66-000c29704177
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 5d7fd409-3bd6-11f0-9d66-000c29704177:1
            Executed_Gtid_Set: 5d7fd409-3bd6-11f0-9d66-000c29704177:1
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 1
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)


重点关注参数
Master_Log_File: mysql-bin.000010
Relay_Master_Log_File: mysql-bin.000010
Relay_Master_Log_File: mysql-bin.000010
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0


如果主库(File,Position)大于从库(Master_Log_File, Read_Master_Log_Pos),说明IO线程存在延迟。
如果从库(Relay_Master_Log_File,Exec_Master_Log_Pos) < (Master_Log_File,Read_Master_Log_Pos),说明SQL线程存在延迟。


2.3 主库binlog的写入量多少,如果写入量大于从库IO读取量也会出现延迟。


3 主从延迟的常见原因及解决方法


3.1 IO线程存在延迟
#网络延迟
检查网络问题,启用binlog的压缩传输

#磁盘IO存在瓶颈
关闭binlog

#网络问题
在主库使用rsync 拷贝一个文件到从库,简单可以判断

3.2 SQL线程存在延迟
#主库写入量过大,而SQL线程单线程重放
解决方法:可以启动并行复制,默认参数值可以,通过修改slave_parallel_workers数量来提高
slave_parallel_type=LOGICAL_CLOCK       
slave_parallel_workers=4                   
slave_preserve_commit_order=ON
binlog_transaction_dependency_tracking=WRITESET_SESSION
transaction_write_set_extraction=XXHASH64
binlog_transaction_dependency_history_size=25000
binlog_format=ROW 

#大事务
指二进制日志格式为row的情况下,操作涉及的记录数比较多,特别是update和delete操作
解决方法: 建议把大事务拆分,每一次小批量执行

#从库上有查询操作
消耗系统资源和锁等待,常见从库的查询操作导致阻塞主库DDL操作
mysql> show processlist;
+----+-----------------+-----------------+------+---------+------+----------------------------------------------------------+------------------+
| Id | User            | Host            | db   | Command | Time | State                                                    | Info             |
+----+-----------------+-----------------+------+---------+------+----------------------------------------------------------+------------------+
|  5 | system user     | connecting host | NULL | Connect | 7574 | Waiting for source to send event                         | NULL             |
|  6 | system user     |                 | NULL | Query   | 6409 | Replica has read all relay log; waiting for more updates | NULL             |
|  7 | event_scheduler | localhost       | NULL | Daemon  | 7574 | Waiting on empty queue                                   | NULL             |
| 10 | system user     |                 | NULL | Connect | 7574 | Waiting for an event from Coordinator                    | NULL             |
| 11 | system user     |                 | NULL | Connect | 7574 | Waiting for an event from Coordinator                    | NULL             |
| 12 | system user     |                 | NULL | Connect | 7574 | Waiting for an event from Coordinator                    | NULL             |
| 13 | system user     |                 | NULL | Connect | 7574 | Waiting for an event from Coordinator                    | NULL             |
| 16 | root            | localhost       | NULL | Query   |    0 | init                                                     | show processlist |
+----+-----------------+-----------------+------+---------+------+----------------------------------------------------------+------------------+
8 rows in set, 1 warning (0.00 sec)

#从库上存在备份
备份的全局读锁阻塞sql线程重放。

mysql> show processlist;


#磁盘IO存在瓶颈
从库关闭binlog日志


 

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

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

相关文章

Kotlin 活动事件通讯跳转深度讲解

在 Android 开发的浩瀚海洋中,活动(Activity)间的事件通讯与跳转犹如构建复杂应用程序的桥梁与纽带,而 Kotlin 语言的加入,更是为这一过程注入了简洁、优雅与高效的活力。本文将深入剖析 Kotlin 开发中安卓活动事件通讯跳转的方方面面,从基础概念到高级技巧,从代码示例到…

[FreeRTOS- 野火] - - - 临界段

一、介绍 临界段最常出现在对一些全局变量进行操作的场景。 1.1 临界段的定义 临界段是指在多任务系统中&#xff0c;一段需要独占访问共享资源的代码。在这段代码执行期间&#xff0c;必须确保没有任何其他任务或中断可以访问或修改相同的共享资源。 临界段的主要目的是防…

Vad-R1:通过从感知到认知的思维链进行视频异常推理

文章目录 速览摘要1 引言2 相关工作视频异常检测与数据集视频多模态大语言模型具备推理能力的多模态大语言模型 3 方法&#xff1a;Vad-R13.1 从感知到认知的思维链&#xff08;Perception-to-Cognition Chain-of-Thought&#xff09;3.2 数据集&#xff1a;Vad-Reasoning3.3 A…

CSS Day07

1.搭建项目目录 2.网页头部SEO三大标签 3.Favicon图标与版心 &#xff08;1&#xff09;Favicon图标 &#xff08;2&#xff09;版心 4.快捷导航 5.头部-布局 6.头部-logo 7.头部-导航 8.头部-搜索 9头部-购物车 10.底部-布局 11.底部-服务区域 12.底部-帮助中心 13.底部-版权…

Flutter图片Image、本地图片、程程图片、圆片剪切、圆形图片

目录 图片组件的介绍 1.Image.network加载图片 1.1 Image scale图片缩小一倍 1.2 Image alignment使用 1.3 Image fit 属性的取值及说明 1.3.1 Contain 默认效果 1.3.2 Fill 图片会缩放至完全填满目标区域&#xff08;宽高&#xff09; 1.3.3 Fill 图片会缩放至完全填满目…

Prometheus学习之pushgateway和altermanager组件

[rootnode-exporter41 /usr/local/alertmanager-0.28.1.linux-amd64]# pwd /usr/local/alertmanager-0.28.1.linux-amd64[rootnode-exporter41 /usr/local/alertmanager-0.28.1.linux-amd64]# cat alertmanager.yml # 通用配置 global:resolve_timeout: 5msmtp_from: 914XXXXX…

NHANES指标推荐:CQI

文章题目&#xff1a;The impact of carbohydrate quality index on menopausal symptoms and quality of life in postmenopausal women 中文标题&#xff1a;碳水化合物质量指数对绝经后妇女更年期症状和生活质量的影响 发表杂志&#xff1a;BMC Womens Health 影响因子&…

【cpp-httplib】 安装与使用

cpp-httplib 1. 介绍2. 安装3. 类与接口3.1 httplib请求3.2 httplib响应3.3 httplib服务端3.4 httplib客户端 4. 使用4.1 服务端4.2 客户端 1. 介绍 C HTTP 库&#xff08;cpp-httplib&#xff09;是一个轻量级的 C HTTP 客户端/服务器库&#xff0c;它提供了简单的 API 来创建…

Electron-vite【实战】MD 编辑器 -- 系统菜单(含菜单封装,新建文件,打开文件,打开文件夹,保存文件,退出系统)

最终效果 整体架构 src/main/index.ts import { createMenu } from ./menu在 const mainWindow 后 // 加载菜单createMenu(mainWindow)src/main/menu.ts import { BrowserWindow, Menu, MenuItem, MenuItemConstructorOptions, dialog, shell } from electron import fs from…

【第4章 图像与视频】4.5 操作图像的像素

文章目录 前言示例-获取和修改图像数据图像数据的遍历方式图像滤镜负片滤镜黑白滤镜浮雕滤镜filter滤镜属性 前言 getImageData() 与 putImageData() 这两个方法分别用来获取图像的像素信息&#xff0c;以及向图像中插入像素。与此同时&#xff0c;如果有需要&#xff0c;也可…

【Docker 从入门到实战全攻略(一):核心概念 + 命令详解 + 部署案例】

1. 是什么 Docker 是一个用于开发、部署和运行应用程序的开源平台&#xff0c;它使用 容器化技术 将应用及其依赖打包成独立的容器&#xff0c;确保应用在不同环境中一致运行。 2. Docker与虚拟机 2.1 Docker&#xff08;容器化&#xff09; 容器化是一种轻量级的虚拟化技术…

Vue:axios(POST请求)

发送 POST 请求 基本用法 axios.post(/api/login, {username: lcyyyy,password: 123456 }) .then(response > {console.log(请求成功:, response.data); }) .catch(error > {console.error(请求失败:, error); });在 Vue 组件中使用 export default {methods: {async …

一周学会Pandas2之Python数据处理与分析-数据重塑与透视-unstack() - 解堆 (行 -> 列)

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili unstack() 是 pandas 中用于数据重塑的重要方法&#xff0c;它与 stack() 互为逆操作。unstack() 的主要功能是将行索…

基于大模型预测的FicatIII-IV期股骨头坏死综合治疗研究报告

目录 一、引言 1.1 研究背景与目的 1.2 国内外研究现状 1.3 研究意义和创新点 二、FicatIII-IV 期股骨头坏死概述 2.1 疾病定义与分期 2.2 病因与病理机制 2.3 临床症状与诊断方法 三、大模型预测原理与方法 3.1 大模型简介 3.2 数据收集与预处理 3.3 模型训练与优…

C++?多态!!!

一、引言 众所周知&#xff0c;C有三大特性&#xff0c;它们分别是封装、继承和多态&#xff0c;在之前的文章中已经详细介绍过封装和继承了&#xff0c;今天我们将一起学习多态相关的知识&#xff0c;如果还想了解封装、继承相关的知识&#xff0c;可以跳转到以下链接&#xf…

electron安装报错处理

electron安装报错 解决方法&#xff1a; 修改 C:\Users\用户名.npmrc下配置文件 添加代码 electron_mirrorhttps://cdn.npmmirror.com/binaries/electron/ electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/最后代码 registryhtt…

Windows10下使用QEMU安装Ubuntu20.04虚拟机,并启用硬件加速

Windows10下使用QEMU安装Ubuntu20.04虚拟机&#xff0c;并启用硬件加速 作者将狼才鲸创建日期2025-05-30 CSDN阅读地址&#xff1a;Windows10下使用QEMU安装Ubuntu20.04虚拟机&#xff0c;并启用硬件加速 本文档源码地址&#xff1a;Windows10下使用QEMU安装Ubuntu20.04虚拟机…

顶刊SCS | 基于视觉语言大模型推理分割的建筑足迹尺度功能分类, 样本数据和代码已开源!

论文介绍 题目&#xff1a;Visual-language reasoning segmentation (LARSE) of function-level building footprint across Yangtze River Economic Belt of China 期刊&#xff1a;Sustainable cities and society&#xff08;中科院一区TOP&#xff0c;IF10.5&#xff09;…

【软件】navicat 官方免费版

Navicat Premium Lite https://www.navicat.com.cn/download/navicat-premium-lite

每个路由器接口,都必须分配所属网络内的 IP 地址,用于转发数据包

在IP网络中&#xff0c;主机&#xff08;Host&#xff09;和路由器接口&#xff08;Router Interface&#xff09;都需要分配网络地址&#xff08;IP地址&#xff09;。 1. 主机&#xff08;Host&#xff09;的IP地址分配 (1) 作用 主机的IP地址用于唯一标识该设备&#xff0…