主从复制的原理

主库将变更的操作写入bin-log日志中(增,删,改操作).

从库中的I/O线程将主库的bin-log拷贝到本地,写入relay-log(中继日志中)

从库的SQL线程从中继日志中读取bin-log然后再在本地执行一遍SQL,保证从库和主库数据的一致性.

主从延迟问题产生的原因

dump log的操作是并发的多线程操作,但是从库的I/O和SQL线程是单线程的操作,(5.6.x后I/O可以多线程操作),但是SQL线程的执行一定是串行的执行,这也就导致了主从复制的延时问题的原因.

SQL的执行是串行化的所以导致,在高并发的情况下,从库的数据比主库慢一些,是有延时的.基本上写1000/s 会产生十几毫秒的延时问题,2000/s 会出现几十毫秒的延时.

主从复制的数据丢失问题

如果主库突然宕机,然后数据还没有同步到从库,那么数据在从库上是没有的可以存在数据的丢失.

半同步复制 - 解决数据丢失问题

半同步复制,semi-sync复制,指的是主库写入bin-log日志后,就会强制此时立即同步数据库,所有从库可以将bin-log写入自己本地的relay-log,只有有一个从库写成功,就会给主库返回一个ack,主库接受到ack才会认为写操作完成,否则将进行回滚从新写入.

mysql主从同步延时问题

使用下面的语句可以看到从库落后主库的秒数

show status,Seconds_Behind_Master

解决方案:

分库:将主库拆分为4个主库,减少主库的写压力,此时主从延时可以忽略.

mysql的并行复制,多个库并行复制,如果说某个库的写入并发就是特别高,单库写并发达到了2000/s,并行复制还是没意义。如果就一个表达到2000/s 其他都才10/s 那么并行复制没什么意义.

在插入数据后不进行查询直接更新,这样的更新就是在主库进行

mysql 主从 问题_Mysql主从复制的问题与解决相关推荐

  1. mysql主从 单点_MySQL主从复制虽好,能完美解决数据库单点问题吗?

    一.单个数据库 服务器 的缺点 数据库服务器存在单点问题: 数据库服务器资源无法满足增长的读写请求: 高峰时数据库连接数经常超过上限. 二.如何解决单点问题 增加额外的数据库服务器,组建数据库集群: ...

  2. mysql主从应用_MySQL主从复制应用、主从复制原理

    mysql主从复制安装配置 1.基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.85.111(主) node2:192.168. ...

  3. mysql 主从 编码_Mysql 主从复制

    MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器). 复制是异步的 从站不需要永久 ...

  4. mysql主从授权_MySQL主从复制(10)读写分离授权多种方案

    一.生产场景mysql主从复制读写分离授权方案及实战 当配置和好MySQL主从复制以后,所有对数据库内容的更新就必须在主服务器上进行. 那么,为什么所有的更新都要在主服务器上进行呢?这是因为数据复制是 ...

  5. mysql主从北_mysql主从复制(超简单)

    怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修改主服 ...

  6. mysql 主从 均衡_Mysql主从复制

    ​好在,别人如何分析我,跟我本身是一点关系也没有的.(by 三毛) 主从复制的常见用途 1.数据备份 对备份来说,复制是一项很有意义的技术补充,但复制既不是备份也不能取代备份 2.负载均衡(读写分离) ...

  7. mysql数据库主从不同步_MySQL数据库之mysql主从数据库不同步的2种解决方法

    本文主要向大家介绍了MySQL数据库之mysql主从数据库不同步的2种解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天发现Mysql的主从数据库没有同步 先上Mas ...

  8. redis mysql主从延迟_MySQL主从延迟问题解决

    今天我们就来看看为什么会产生主从延迟以及主从延迟如何处理等相关问题. 坐好了,准备发车! 主从常见架构 随着日益增长的访问量,单台数据库的应接能力已经捉襟见肘.因此采用主库写数据,从库读数据这种将读写 ...

  9. mysql主从配置_MySQL主从配置详解

    主服务器数据库的每次操作都会记录在其二进制文件mysql-bin.xxx(该文件可以在mysql目录下的data目录中看到)中,从服务器的I/O线程使用专用账号登录到主服务器中读取该二进制文件,并将文 ...

最新文章

  1. UGUI全面实践教程
  2. python进制转换函数汇总-攻防世界-Misc-掀桌子;
  3. Qt 多线程的简单演示
  4. 点火提前角的修正方式有哪些_“天问一号”完成第二次轨道中途修正:精度很高,本次修正量很小...
  5. 二分算法php,使用PHP实现二分查找算法代码分享
  6. Scrum立会报告+燃尽图(Final阶段第四次)
  7. Angular5--viewChild/viewChildren、contentChild/contentChildren使用规则小结
  8. 《An Attentive Survey of Attention Models》阅读笔记
  9. MySQL(20)-----数据库设计的常规步骤
  10. DHCP报文及其格式
  11. mysql中如何复制数据表_MySQL中快速复制数据表方法汇总
  12. 测试架构师修炼之道--读书笔记
  13. 你想要的宏基因组-微生物组知识全在这(1910)
  14. python对京东评论的爬取_python爬取京东评论(三)
  15. java idea导入ecli项目
  16. 纪念三毛辞世20周年——《三毛经典语录》
  17. [POI2008]KUP
  18. Altium Designer 18PCBLogo制作
  19. 老牛知点所以然-Deepin Linux搭建Swift开发环境
  20. 配置eclipse下的C语言开发环境

热门文章

  1. Python 第十五天 串讲
  2. web3j官网的完整中文翻译(java开发区块链以太坊应用的开源类库)
  3. 使用Composer安装Laravel步骤
  4. Zabbix-03-3 告警变量值
  5. iOS 4.2 SDK安装
  6. javascript自定义cookie
  7. 03-获取 TargetUser 的 Followings 列表
  8. 多人开源博客系统再搜集
  9. 学计算机excel就很好吗,零基础学习excel小技巧
  10. 学单片机之前要学什么?C语言和单片机有什么关系?