MYSQL异常处理日志:主从库同步延迟时间过长的分析
问题描述:
程序上表现为对 主库 更新操作之后,从 从库 查询数据没发生改变。怀疑是主从库同步延迟导致。上从库查看主从同步状态,发现Seconds_Behind_Master时间长达一千多秒。正常情况下主从库延时个十几秒还可以容忍,一千多秒显然就有问题了么。。。
问题分析:
我们在一个MYSQL实例上创建了四五个Database,其中一个Database数据量和压力都比较大,从 从库的processlist可以看到从库在处理日志时经常发生lock的状况,但是lock只是压力大database为何会影响到其他database也延迟呢?
原来从库是单线程处理同步日志,也就是说无论多少个database都是通过一个线程去执行更新操作,所以主从库同步延迟的时间不是针对database的,是针对一个MYSQL实例的。
那么,为何从库在处理日志时会发生lock的状态呢?
一般我们都将主从库读写分离,主库负责写操作,从库负责读操作。而一般的web应用读数据的操作要远远大于写数据的量,所以我们在主库上几乎看不到因为更新数据导致的lock。那么从库的lock怎么发生的呢?
- 对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
- 对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。
从上面可以看出,我们在select的时候默认是会阻塞写请求的,当一个表数据量到达了千万级别,那么执行一个select很有可能就会变得比较费劲,再加上一定的压力,不断地select操作,虽然读数据不会受到影响,但是却阻塞了从库处理同步日志的操作。长此以往。。。可想而知。。。
问题处理:
1.首先一个MYSQL实例不要创建太多database,否则一旦其中一个库压力大经常被锁,会导致所有库同步都延迟,你伤不起啊。。。
2.压力较大的情况下使用几个从库值得考量,如果使用多个从库也是可以适当缓解上面lock的情况发生。
MYSQL异常处理日志:主从库同步延迟时间过长的分析相关推荐
- mysql 备库同步_MYSQL主从库同步配置过程
MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...
- mysql 5.7.21 主从_Mysql 5.7.21 设置主从库同步
主从复制条件: Mysql 单机多实例安装参考Mysql 5.7.21 设置主从库同步 下面的操作是多实例主从复制,3306为主库,3307为从库. 主库要开启log-bin,主库和从库的server ...
- mysql connect by_Mysql主从库搭建
点击上方蓝字关注我们! 基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name ...
- MySQL主从库--同步异常
为什么80%的码农都做不了架构师?>>> 查看主库运行状态 -- 查看主库运行状态 mysql> show master status\G *************** ...
- Mysql数据库实现主从数据库同步更新
当前以:D:\mysql-5.7.25(作为主库) -> D:\mysql-5.7.25-FDB(作为从库) 步骤一: 先进行修改从数据库下面的my.ini配置文件 [mysqld] #设置33 ...
- mysql slave 1062_MySQL主从不同步,出现1062错误解决方案
通过查看从服务器的状态,可以看到对应的错误信息 mysql> show slave status\G *************************** 1. row *********** ...
- mysql错误1197_mysql主从不同步问题 Error_code: 1197
首先查看从的状态 mysql> show slave status \G *************************** 1. row ************************* ...
- mysql 5.5 主从双向同步,请教mysql 定时 双向 主从同步問題
--主机开两个窗口,一个进入mysql,一个是shell--主机阻断写操作mysql>FLUSHTABLESWITHREADLOCK;QueryOK,0rowsaffected(0.00sec) ...
- mysql慢日志脚本_MYSQL慢速(SLOW LOG)脚本分析
mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能, 要修改my.cnf或者在mysql启动的时候加入一些参数.如果在my.cnf(Windows ...
- mysql在线搭建从库_Mysql主从库搭建
基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name Maste -e MY ...
最新文章
- hibernate中的hql查询语句list查询所有与iterate查询所有的区别
- 用零知识证明解决投票安全
- DJango-如何快速准备Python虚拟开发环境并快速定制一个项目
- C#在WinForm中实现清空指定类型控件的内容
- 【 MATLAB 】信号处理工具箱之 fft 案例分析
- ssh可以连接但sftp不可以连接解决方案
- pps+linux版+x64,64位Ubuntu 11.04安装PPS的办法
- pycharm 运行.py文件如何像控制台那样传参?
- GuavaCache学习笔记二:Java四大引用类型回顾
- 分析flv文件的信息
- java程序打包为jar_将Java应用程序打包为一个(或胖)JAR
- vscode remote ssh 重新连接_使用 VSCode 愉快地进行 R 远程开发
- windows .bat批处理实现进程监控确保程序运行
- genymotion 前端调试
- BDT在Mac(10.8.3)下找不到libfreetype.6.dylib
- 【交通标志识别】基于matlab GUI SIFT交通标志识别【含Matlab源码 864期】
- 毕业设计-两轮自平衡小车主控板
- 有没有可以干一辈子的工作?
- 微软、IBM对垒大数据
- 小米手机扩容教程_手把手教你把手机16G内存升级128G 【图文教程】
热门文章
- 手机站的拨打电话和发短信
- 9.14-9.18随笔之二
- HTML5 离线存储实战之manifest(附缓存整个文件夹的方法)
- [转]刚成为程序员的你需要什么技能
- scala中“=”的4种使用场景
- ERROR 1290 (HY000): The MySQL server is running withnbs
- Jquery对话框基本配置
- 知识点篇:7)企业标准体系制定要求
- java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport ...
- bzoj1036 count 树链剖分或LCT