1. MySQL数据库主从同步延迟原理。

答:谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有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数据库主从同步延迟解决方案

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

mysql-5.6.3已经支持了多线程的主从复制。

GTID的概念

普通的复制过程中,从库通过记录主库的binlog文件名和偏移量来记录和接收主库binlog的事件工作进展。下次开始复制的时候告知主库这些信息,让主库可以从正确的位置开始发送binlog的事件给从库。但基于GTID的复制就不再需要告知这些事情,在执行  CHANGE  MASTER  TO 命令,也不需要指定MASTER_LOG_FILE 和 MASTER_LOG_POS参数。只需要指定MASTER_AUTO_POSTION = 1 就可以了,主库会根据从库发送过来的一个GTID集合信息来决定从哪里开始发送binlog事件。大大简化了数据库管理员在复制中的工作。

GTID是在数据库提交事务时创建的唯一的标示符。该标示符与事务是一一相关的。

GTID有两部分组成,如下所示:

GTID = source_id:transaction_id

source_id 用于标识这个事务是在哪个数据库实例上执行的。用的是uuid作为source_id 。

transaction_id 是一个序列号,取决于该事务在数据库上的提交顺序。该序列号初始为1.

在MySQL5.6以前的版本,同步复制都是单线程的,只能一个一个执行。在5.6做到了多个库多线程复制。

但是需要注意的是。一个库只能由一个线程去复制。也就是说若复制的库只有1个,那么线程也只有一个。复制的库有2个。那么线程可以增加到两个。

GTID的作用,具体归纳下来有以下两点:

1.根据GTID来确认事务最初的是在哪个实例上提交的

2.GTID的存在方便了Replication和failover。

参考网址:

https://www.cnblogs.com/cnmenglang/p/6393769.html

https://blog.csdn.net/ghost_leader/article/details/60960065

mysql 主从同步不一致_为什么mysql会经常出现主从同步不一致的情况相关推荐

  1. mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿

    在linux服务器下测试:主(master)服务器IP:219.223.5.105(对应内网IP:192.168.1.75)从(slave)服务器IP:219.223.5.104(对应内网IP:192 ...

  2. mysql 主从 不一致_揭秘MySQL主从数据不一致

    前言: 目前MySQL数据库最常用的是主从架构,大多数高可用架构也是通过主从架构演变而来.但是主从架构运行时间长久后容易出现数据不一致的情况,比如因从库可写造成的误操作或者复制bug等,本篇文章将会详 ...

  3. mysql数据库连接配置路径_[zz]MySQL数据库主从同步安装与配置总结

    注意:本文出自"阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100pog2.ht ...

  4. mysql主从切换gtid不一致_解决mysql使用GTID主从复制错误问题

    解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决 ...

  5. mysql数据没有同步更新_解决MySQL的主从数据库没有同步的两种方法

    问题 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master statu ...

  6. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  7. 分散mysql的写入压力_缓解MySQL写入压力和主从延迟的尝试

    标签: 缓解MySQL写入压力和主从延迟的尝试 http://mp.weixin.qq.com/s?__biz=MzA5Njg5ODMzMg==&mid=208512935&idx=1 ...

  8. mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

    一. 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大.运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的 ...

  9. mysql同步数据_实现MySQL数据库数据的同步方法介绍

    做开发的时候要做MySQL的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,MySQL的版本是4.1.15,都是目前最新的版本. 1.安 ...

  10. mysql不同版本乱码_解决MySQL中文乱码以及版本不一致问题_MySQL

    一.导出数据 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的 ...

最新文章

  1. 如何用TensorFlow训练词向量
  2. html css js书写规范
  3. Knockout 监控数组对象属性
  4. 一篇文学会商用可编辑问卷表单制作【iVX 十二】
  5. python以写模式打开录入_Python的学习(六)—-文件和输入输出处理 | 学步园
  6. php js记住密码功能,jquery.cookie.js实现用户登录保存密码功能的方法_jquery
  7. 网线重新插拔后恢复正常_14日科技精选:路由器经常掉线,必须重新插拔网线才能上网。什么原因?...
  8. LoadRunner动态连接库函数的调用
  9. 黑客利用智能灯泡窃取用户数据!
  10. 基础一:JS数据类型
  11. 对象行为型 - 模版方法模式
  12. ASP.NET:使用Flurl制作可复用的分页组件
  13. jquery form提交的2种方式
  14. 计算机外文文献ssh,计算机外文文献及翻译(SSH).doc
  15. Tomcat使用总结
  16. “人工智能”初创公司所面临的问题
  17. 运动快乐的来源-内啡肽
  18. Javascript设置滚动条向上滚动的方法;JS设置滚动条滚动的代码
  19. 计算机科学出国,假如你是李华,打算出国学习计算机科学.现在给在美国工作的David Zhang写信,了解以下情况.1.需参加的英语考试;...
  20. [1035]xposed框架未安装xposed模块未激活怎么办(Could not load available ZIP files.Pull down to try again)

热门文章

  1. 网页制作中点一张图片变成图片浏览式_网页不会做,那是画册看得少(上)
  2. Pycharm知识点
  3. mqtt 多个订阅者 只允许一个接收_一文读懂物联网的灵魂MQTT
  4. Java获取元注解_Java 元注解
  5. java 获取工程编码格式_java 获取获取字符串编码格式
  6. python汉字排序规则_Python 中文排序
  7. 服务器和linux知识,每天学知识:Windows和Linux服务器差异
  8. mysql 字段操作
  9. werkzeug routing.Rule
  10. 3.5 向量化实现的解释