MySQL Slave备份异常处理

2023-05-16

昨天Mysql备份突然出现问题,从库一直没读到数据

1、执行 show slave status
发现一直处于Reading event from the relay log,Seconds_Behind_Master 为3000多,说明延迟了很久

2、查看本地同步文件,发现很多等待同步的文件。说明主库没有问题,还在同步,从库出现了问题

3、再次分析 show slave status信息

Relay_Log_File: mysql-relay.001295
Relay_Log_Pos: 43557398

Relay_Log_Pos 一直不动,说明卡在这里了

5、查询这个文件 43557398 行的sql信息

show relaylog events in mysql-relay.001295' FROM 43557398LIMIT 0 ,100

发现执行了大量的删除和更新操作。导致同步语句执行失败,卡住了

6、跳过这次操作,继续执行同步

stop slave;
set global sql_slave_skip_counter=1;
start slave;

7、重新查看 show slave status,发现 Relay_Log_Pos有了变化。

很快,本地的同步文件就执行完成并删除了,Seconds_Behind_Master = 0,同步完成。

注:切忌执行大量删除sql,反复删除创建同一个表等,这样很容易导致同步卡住。

附录:

sync_binlog 参数说明

sync_binlog”:这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性。对于“sync_binlog”参数的各种设置的说明如下:

sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。

sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

在MySQL中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。而当设置为“1”的时候,是最安全但是性能损耗最大的设置。因为当设置为1的时候,即使系统Crash,也最多丢失binlog_cache中未完成的一个事务,对实际数据没有任何实质性影响。

从以往经验和相关测试来看,对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。

innodb_flush_log_at_trx_commit 参数值说明

innodb_flush_log_at_trx_commit是配置MySql日志何时写入硬盘的参数:

0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。

1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。

2:每次事务提交时mysql都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作

修改命令(这样只是本次生效,重启mysql后恢复)

 -- 修改全局配置
      set global sync_binlog=100;
      set global innodb_flush_log_at_trx_commit=2;

  -- 查看配置
      SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit'
      SHOW VARIABLES LIKE 'sync_binlog'

也可以在my.ini或my.cnf中设置,重启mysql生效(这样是永久生效)。

sync_binlog=20
innodb_flush_log_at_trx_commit=2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL Slave备份异常处理 的相关文章

  • SVN常用命令总结

    svn使用总结 SVN检出操作 svn checkout path svn checkout svn 192 168 0 1 project 简写 xff1a svn co SVN查看状态 span class token string 3
  • vue-cli3搭建的vue改造成SSR项目

    vue cli3搭建的vue改造成SSR项目 一 文章简介二 搭建vue项目三 改造成SSR首先安装ssr的所需相关依赖改造router ts改造store ts改造main ts创建entry client ts创建entry serve
  • VSCode配置Git随记

    vscode中对git进行了集成 很多操作只需点击就能操作 无需写一些git指令 不过这就需要你对vscode进行配置 下面我会讲到git的配置与免密码上传github 一 安装Git管理工具 可上官网安装 安装路径Git 安装路径默认C
  • VSCode插件推荐(2018.5.31)

    前言 vscode我觉得是用过最好用的编辑器 xff0c 相对而言没有webStorm myeclipse那么卡 xff0c 而且最主要是免费的 xff0c 不用烦每次更新软件的时候破解码无法使用 xff0c 这篇博客主要是记录我自己发现的
  • VSCode配置 Debugger for Chrome插件

    Debugger for Chrome这个插件是直接在vscode里面进行调试js文件 xff0c 跟谷歌的控制台是一样的功能 xff0c 下载了它就不用打开浏览器的控制台就能进行打断点 首先在左侧扩展栏找到这个插件下载好了后重启编辑器之后
  • VSCode打开vue项目的vue组件提示错误的解决办法及key属性的作用

    本博文为学习过程中随记 xff0c 如有抄袭请评论告知谢谢 xff01 最近重新拾起了vue项目 xff0c 因为之前开始习惯使用VSCode编码 xff0c 因此在打开vue项目时 xff0c vue的语法v for默认报错 以下是解决方
  • vue搭建脚手架及部署vue项目随记

    本博文是用于介绍搭建vue脚手架及使用webpack部署vue脚手架目录 1 依赖软件 Node js 1 1下载node js http nodejs cn download https npm taobao org mirrors no
  • 最新版XAMPP中php7.2配置mongodb3.6扩展

    本博文为本人配置mongo随记 第一步下载xampp xff0c 地址 xff1a https www apachefriends org zh cn download html xff0c 这里我下载的是最新版php7 2 8 安装完之后
  • nginx的进程模型

    文章目录 一 Nginx进程模型master进程worker进程示意图 二 Nginx reload配置文件过程三 worker进程处理请求的过程四 Nginx多进程模型的好处 一 Nginx进程模型 Nginx启动后 xff0c 以dae
  • 基于docker的github升级之路

    基于docker的github升级之路 公司的gitlab目前的版本是8 13 2 xff0c 运行在docker容器内 该版本使用的api版本是V3 xff0c 已经不适合一些监控统计工具的调用了 xff0c 看了gitlab官网上对最新
  • .frm,.myd,myi转换为.sql导入数据库

    先说说这几种文件是干什么的 xff1a frm是描述了表的结构 xff0c myd保存了表的数据记录 xff0c myi则是表的索引 其实一个 frm文件就是对应的数据库中的一个表 表示数据表的表结构 MYD文件 这应该是INNODB引擎外
  • linux idea无法输入中文

    linux idea无法输入中文 1 系统输入法切换快捷键 xff08 ctrl 43 space xff09 与idea快捷键冲突 xff0c 更改输入法快捷键 xff0c 如改为 ctrl 43 6
  • linux设置systemd服务

    linux设置systemd服务 access dir etc systemd system create file whose name ended with service chmod 644 xx service edit xx se
  • 普通用户使用docker命令

    普通用户使用docker命令 add docker group sudo cat etc group docker sudo groupadd g 999 docker add user to docker group sudo gpass
  • samba服务器

    samba服务器 install samba edit etc samba smb conf default comment 61 default path 61 opt es backups valid users 61 zsk13 wr
  • linux安装mongodb

    install mongodb tar zxvf mongodb linux x86 64 4 0 22 tgz useradd mongod init passwd with mongod passwd mongod mkdir for
  • linux制作iso启动盘

    制作iso启动盘 sudo fdisk l umount dev sdb umount dev sdb1 umount dev sdd2 umount dev sdd3 sudo mkfs ext4 dev sdb sudo dd if 6
  • ros2+opencv抓取rtsp视频流

    遇到的坑 xff1a rtsp视频流和转ros2 topic放到一个线程里 xff0c 频繁提示解码丢帧的情况 解决这个问题需要将opencv获取rtsp视频流单独开一个线程 xff0c 不能在里面处理任何多余的代码 代码如下 xff1a
  • 机械臂标定实战

    硬件资源 xff1a 机械臂viper300 摄像头realsense d435i 软件版本 xff1a 操作系统 xff1a Ubuntu18 04 ROS Melodic 标定算法 xff1a 采用easy handeye 算法包 ht
  • Linux 下的 Docker 安装及创建私有仓(三)

    Linux 下的 Docker 安装及创建私有仓 xff08 三 xff09 辛苦打工人 xff0c 今天继续搬砖 xff0c 搞搞私有仓用户和密码 废话不说 xff0c 开工 xff01 1 安装httpd tools 授权需要用到 xf

随机推荐