MySQL主从延迟原因以及解决方案:谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysql5.6版本之前),主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高。

slave的Slave_IO_Running线程会到主库取日志,效率会比较高,slave的Slave_SQL_Running线程将主库的DDL和DML操作都在slave实施。DML和DDL的IO操作是随机的,不是顺序的,因此成本会很高,还可能是slave上的其他查询产生lock争用,由于Slave_SQL_Running也是单线程的,所以一个DDL卡主了,需要执行10分钟,那么所有之后的DDL会等待这个DDL执行完才会继续执行,这就导致了延时。有朋友会说:“主库上那个相同的DDL也需要执行10分,为什么slave会延时?”,答案是master可以并发,Slave_SQL_Running线程却不可以。

2.MySQL数据库主从同步延迟是怎么产生的。

当主库的TPS并发较高时,产生的DDL数量超过slave一个sql线程所能承受的范围,那么延时就产生了,当然还有就是可能与slave的大型query语句产生了锁等待。

3.MySQL数据库主从同步延迟解决方案

(1)最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行。还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog,innodb_flushlog也可以设置为0来提高sql的执行效率。

(2)另外就是使用比主库更好的硬件设备作为slave。

就是把,一台从服务器当度作为备份使用,而不提供查询,那边他的负载下来了,执行relay log里面的SQL效率自然就高了。

(3)增加从服务器喽,这个目的还是分散读的压力,从而降低服务器负载。

4.MySQL数据库主从同步延迟产生的因素。

1. 网络延迟 2. master负载 3. slave负载 一般的做法是,使用多台slave来分摊读请求,再从这些slave中取一台专用的服务器,只作为备份用,不进行其他任何操作,就能相对最大限度地达到’实时’的要求了

另外,再介绍2个可以减少延迟的参数 –slave-net-timeout=seconds 参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据 slave_net_timeout单位为秒 默认设置为 3600秒 slave_net_timeout 3600 –master-connect-retry=seconds 参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试。 master-connect-retry单位为秒 默认设置为 60秒 通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟。

mysql主从复制延时性问题_MySQL主从同步延迟原因及解决办法相关推荐

  1. mysql 主从同步 速度_MySQL主从同步延迟原因及解决办法

    MySQL主从同步延迟原因及解决办法 MySQL主从延迟原因以及解决方案: 谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysq ...

  2. mysql 主从同步不一致_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  3. mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  4. mysql 两个时间相差大于24小时的数据_MySQL 主从同步延迟的原因及解决办法(仅学习)...

    原文链接:https://blog.csdn.net/hao_yunfeng/article/details/82392261 Mysql主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导致主 ...

  5. MySQL主从同步延迟原因与解决方案

    一.MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高.Slave的SQL Thr ...

  6. 多mysql实例下开发需要注意主从同步延迟

    今天晚上服务器上线测试,遇到了一个问题! 往数据库写了一条数据之后,再读取该记录,居然读不出来,报空指针.十分费解,喊来开发组长定位问题.他的解释是:写操作用的是主库,而读操作用的是从库.在写库写完之 ...

  7. mysql daemon failed to start._MySQL Daemon failed to start错误解决办法

    MySQL Daemon failed to start错误解决办法 前两天我们发现发布好的网站不可以进行注册,登陆这些活动,但是访问页面是正常的.于是开始对问题进行排查,首先我们重启了jenkins ...

  8. mysql占用内存过高_mysql数据库占用内存过高解决办法

    top命令查看系统的实时负载, 包括进程.CPU负载.内存使用等等: 直接输入top命令 PID:PID进程 USER:用户 PR:优先级 NI:nice值,负值表示高优先级,正值表示低优先级 VIR ...

  9. mysql data 文件过大_MySQL ibdata1文件太大的解决办法

    在MySQL数据库中,如果不指定innodb_file_per_table=1参数单独保存每个表的数据,MySQL的数据都会存放在ibdata1文件里,时间久了这个文件就会变的非常大. 下面是参考网上 ...

最新文章

  1. ROS与PCL中点云数据之间的转换
  2. 端到端问答新突破:百度提出RocketQA,登顶MSMARCO榜首
  3. 对sigma pix 的理解
  4. The CLR’s Execution Model(Chapter 1 of CLR via C#)
  5. IBM的大数据就是返朴归真
  6. 数字图像处理:第九章 线性系统、卷积、傅立叶变换
  7. Winform中使用NPOI实现Excel导入并赋值给DataTable
  8. Match Points
  9. Sublime Text批量删除空白行
  10. 利用遗传算法演化一个棋类游戏的人工智能
  11. jquery的dom操作之创建节点
  12. java中awt和swing是的关系以及区别
  13. Vue折腾记 - (2)写一个不大靠谱的面包屑组件
  14. Java微信公众平台开发(十一)——开发中微信公众平台/开放平台/商户平台的关联
  15. win10电脑显示未安装任何音频输出设备问题解决记录
  16. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错的原因
  17. Android打造通用标题栏——让你的App统一标题栏风格
  18. 嵌入式学习——使用STM32F103基于HAL库移植uCOS-III
  19. 软考网络工程师协议和名称---必看
  20. python自动化办公之爬取HTML图片写入PPT实战

热门文章

  1. DDD领域驱动设计基本理论知识总结
  2. 手机webapp meta标签 (全屏)
  3. [Codeforces] Round #320 (Div.2)
  4. 在SQL Server 2005中实现表的行列转换()
  5. 业务智能 ETL 设计实施策略(转载)
  6. 定制浏览器地址栏前的小图标
  7. 【转载】Hadoop 2.7.3 和Hbase 1.2.4安装教程
  8. [linux] tcpdump抓包案例
  9. 科学家揭示灵长类早期胚胎发育多能性的变化模式
  10. Java Comparator排序