问题描述:

程序上表现为对 主库 更新操作之后,从 从库 查询数据没发生改变。怀疑是主从库同步延迟导致。上从库查看主从同步状态,发现Seconds_Behind_Master时间长达一千多秒。正常情况下主从库延时个十几秒还可以容忍,一千多秒显然就有问题了么。。。

问题分析:

我们在一个MYSQL实例上创建了四五个Database,其中一个Database数据量和压力都比较大,从 从库的processlist可以看到从库在处理日志时经常发生lock的状况,但是lock只是压力大database为何会影响到其他database也延迟呢?

原来从库是单线程处理同步日志,也就是说无论多少个database都是通过一个线程去执行更新操作,所以主从库同步延迟的时间不是针对database的,是针对一个MYSQL实例的。

那么,为何从库在处理日志时会发生lock的状态呢?

一般我们都将主从库读写分离,主库负责写操作,从库负责读操作。而一般的web应用读数据的操作要远远大于写数据的量,所以我们在主库上几乎看不到因为更新数据导致的lock。那么从库的lock怎么发生的呢?

[c-sharp] view plaincopyprint?
  1. 对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
  2. 对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

从上面可以看出,我们在select的时候默认是会阻塞写请求的,当一个表数据量到达了千万级别,那么执行一个select很有可能就会变得比较费劲,再加上一定的压力,不断地select操作,虽然读数据不会受到影响,但是却阻塞了从库处理同步日志的操作。长此以往。。。可想而知。。。

问题处理:

1.首先一个MYSQL实例不要创建太多database,否则一旦其中一个库压力大经常被锁,会导致所有库同步都延迟,你伤不起啊。。。

2.压力较大的情况下使用几个从库值得考量,如果使用多个从库也是可以适当缓解上面lock的情况发生。

本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/914451,如需转载请自行联系原作者

MYSQL异常处理日志:主从库同步延迟时间过长的分析相关推荐

  1. mysql 备库同步_MYSQL主从库同步配置过程

    MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...

  2. mysql 5.7.21 主从_Mysql 5.7.21 设置主从库同步

    主从复制条件: Mysql 单机多实例安装参考Mysql 5.7.21 设置主从库同步 下面的操作是多实例主从复制,3306为主库,3307为从库. 主库要开启log-bin,主库和从库的server ...

  3. mysql connect by_Mysql主从库搭建

    点击上方蓝字关注我们! 基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name ...

  4. MySQL主从库--同步异常

    为什么80%的码农都做不了架构师?>>>    查看主库运行状态 -- 查看主库运行状态 mysql> show master status\G *************** ...

  5. Mysql数据库实现主从数据库同步更新

    当前以:D:\mysql-5.7.25(作为主库) -> D:\mysql-5.7.25-FDB(作为从库) 步骤一: 先进行修改从数据库下面的my.ini配置文件 [mysqld] #设置33 ...

  6. mysql slave 1062_MySQL主从不同步,出现1062错误解决方案

    通过查看从服务器的状态,可以看到对应的错误信息 mysql> show slave status\G *************************** 1. row *********** ...

  7. mysql错误1197_mysql主从不同步问题 Error_code: 1197

    首先查看从的状态 mysql> show slave status \G *************************** 1. row ************************* ...

  8. mysql 5.5 主从双向同步,请教mysql 定时 双向 主从同步問題

    --主机开两个窗口,一个进入mysql,一个是shell--主机阻断写操作mysql>FLUSHTABLESWITHREADLOCK;QueryOK,0rowsaffected(0.00sec) ...

  9. mysql慢日志脚本_MYSQL慢速(SLOW LOG)脚本分析

    mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能, 要修改my.cnf或者在mysql启动的时候加入一些参数.如果在my.cnf(Windows ...

  10. mysql在线搭建从库_Mysql主从库搭建

    基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name Maste -e MY ...

最新文章

  1. hibernate中的hql查询语句list查询所有与iterate查询所有的区别
  2. 用零知识证明解决投票安全
  3. DJango-如何快速准备Python虚拟开发环境并快速定制一个项目
  4. C#在WinForm中实现清空指定类型控件的内容
  5. 【 MATLAB 】信号处理工具箱之 fft 案例分析
  6. ssh可以连接但sftp不可以连接解决方案
  7. pps+linux版+x64,64位Ubuntu 11.04安装PPS的办法
  8. pycharm 运行.py文件如何像控制台那样传参?
  9. GuavaCache学习笔记二:Java四大引用类型回顾
  10. 分析flv文件的信息
  11. java程序打包为jar_将Java应用程序打包为一个(或胖)JAR
  12. vscode remote ssh 重新连接_使用 VSCode 愉快地进行 R 远程开发
  13. windows .bat批处理实现进程监控确保程序运行
  14. genymotion 前端调试
  15. BDT在Mac(10.8.3)下找不到libfreetype.6.dylib
  16. 【交通标志识别】基于matlab GUI SIFT交通标志识别【含Matlab源码 864期】
  17. 毕业设计-两轮自平衡小车主控板
  18. 有没有可以干一辈子的工作?
  19. 微软、IBM对垒大数据
  20. 小米手机扩容教程_手把手教你把手机16G内存升级128G 【图文教程】

热门文章

  1. 手机站的拨打电话和发短信
  2. 9.14-9.18随笔之二
  3. HTML5 离线存储实战之manifest(附缓存整个文件夹的方法)
  4. [转]刚成为程序员的你需要什么技能
  5. scala中“=”的4种使用场景
  6. ERROR 1290 (HY000): The MySQL server is running withnbs
  7. Jquery对话框基本配置
  8. 知识点篇:7)企业标准体系制定要求
  9. java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport ...
  10. bzoj1036 count 树链剖分或LCT