知识大全 MYSQL主从不同步延迟原理

Posted

篇首语:针越用越明,脑越用越灵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 MYSQL主从不同步延迟原理相关的知识,希望对你有一定的参考价值。

MYSQL主从不同步延迟原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   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卡主了 需要执行 分钟 那么所有之后的DDL会等待这个DDL执行完才会继续执行 这就导致了延时 有朋友会问 主库上那个相同的DDL也需要执行 分 为什么slave会延时? 答案是master可以并发 Slave_SQL_Running线程却不可以

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

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

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

  丁奇的transefer是一个不错的方案 不过一般公司受限于对mysql的代码修改能力的限制和对mysql的掌控能力 还是不太适合

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

  mysql 已经支持了多线程的主从复制 原理和丁奇的类似 丁奇的是以表做多线程 oracle使用的是以数据库(schema)为单位做多线程 不同的库可以使用不同的复制线程

  sync_binlog= o

  This makes MySQL synchronize the binary log s contents to disk each time it mits a transaction

  默认情况下 并不是每次写入时都将binlog与硬盘同步 因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃 有可能binlog中最后的语句丢 失了 要想防止这种情况 你可以使用sync_binlog全局变量( 是最安全的值 但也是最慢的) 使binlog在每N次binlog写入后与硬盘 同步 即使sync_binlog设置为 出现崩溃时 也有可能表内容和binlog内容之间存在不一致性 如果使用InnoDB表 MySQL服务器 处理MIT语句 它将整个事务写入binlog并将事务提交到InnoDB中 如果在两次操作之间出现崩溃 重启时 事务被InnoDB回滚 但仍 然存在binlog中 可以用 innodb safe binlog选项来增加InnoDB表内容和binlog之间的一致性 (注释 在MySQL 中不需要 innodb safe binlog;由于引入了XA事务支持 该选项作废了) 该选项可以提供更大程度的安全 使每个事务的 binlog(sync_binlog = )和(默认情况为真)InnoDB日志与硬盘同步 该选项的效果是崩溃后重启时 在滚回事务后 MySQL服务器从binlog剪切回滚的 InnoDB事务 这样可以确保binlog反馈InnoDB表的确切数据等 并使从服务器保持与主服务器保持同步(不接收 回滚的语句)

  innodb_flush_log_at_trx_mit (这个很管用)

cha138/Article/program/MySQL/201311/29358

相关参考

知识大全 MySql配置主从复制读写分离

MySql配置主从复制读写分离  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  myini配置文件

知识大全 MYSQL数据库主主同步实战

MYSQL数据库主主同步实战  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MYSQL支持单向异

知识大全 MYSQL的master/slave数据同步配置

MYSQL的master/slave数据同步配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 UNIX设置MySql数据同步 实现复制功能

UNIX设置MySql数据同步实现复制功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  mys

什么是主从式多机操作系统?它有什么优缺点?

  主从式多机操作系统的工作原理最简单,许多在单机系统上使用的软件都可以在此系统的管理下运行。它的主要特点是监控管理程序始终由同一个主处理机执行,从机的任务分配完全由主机负责。如果从机需要主机的服务,

什么是主从式多机操作系统?它有什么优缺点?

  主从式多机操作系统的工作原理最简单,许多在单机系统上使用的软件都可以在此系统的管理下运行。它的主要特点是监控管理程序始终由同一个主处理机执行,从机的任务分配完全由主机负责。如果从机需要主机的服务,

知识大全 轻松掌握MySQL数据库锁机制的相关原理[2]

轻松掌握MySQL数据库锁机制的相关原理[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  不

知识大全 轻松掌握MySQL数据库锁机制的相关原理[1]

轻松掌握MySQL数据库锁机制的相关原理[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 多核线程-volatile原理与技巧

  为什么使用volatile比同步代价更低?  同步的代价主要由其覆蓋范围决定如果可以降低同步的覆蓋范围则可以大幅提升程序性能  而volatile的覆蓋范围仅仅变量级别的因此它的同步代价很低  v

按结构分电动机分为哪几类?

  二锅头  按结构及工作原理分根据电动机按结构及工作原理的不同,可分为直流电动机,异步电动机和同步电动机。同步电动机还可分为永磁同步电动机、磁阻同步电动机和磁滞同步电动机。异步电动机可分为感应电动机