当前位置:首页 > 日记 > 正文

mysql主从同步延迟的原理分析及解决方案

mysql主从同步延迟的原理分析及解决方案
1。mysql数据库主从同步延时原理。
要说延迟原则,从MySQL数据库主的复制原理来看,MySQL的主从复制是一个单线程操作。
所有binlog DDL和DML binlog主图书馆,是一个连续的写,所以效率很高,从slave_io_running线程日志的主要图书馆,效率很高,下一步,问题是,奴隶slave_sql_running将奴隶implementation.dml DDL和DML和DDL的IO操作的主要线程库是立即的,不是顺序,许多成本高,也可能是奴隶的锁争用其他查询,因为slave_sql_running是单线程的,所以一个DDL卡,需要10分钟,然后在DDL等DDL完成执行下去,这导致的一个朋友会延迟。问:在主图书馆同样也需要执行DDL 10分。为什么奴隶延迟答案是,高手可以并行,但slave_sql_running线程不能。

2。mysql数据库主从同步延迟是如何产生的。
当主库的TPS较高,生成的DDL的数量大于从SQL线程,所以延迟产生。当然,可以使用从属的大型查询语句生成锁等待。

三.mysql数据库主从同步延时解决方案。
Ding Qi的转移是一个很好的解决方案,但通用公司通过修改MySQL的代码和控制MySQL的能力有限。
为了减少从同步延迟是优化结构使主图书馆的DDL尽可能快的最简单的方法。有主库编写,数据安全性高,如sync_binlog = 1,innodb_flush_log_at_trx_commit = 1,设置,和奴隶不需要这么高的数据安全性,可以说sync_binlog设置为0或innodb_flushlog关闭binlog,也可以设置为0来提高SQL效率。另一种是使用优于主图书馆作为一个奴隶的硬件设备。
mysql-5.6.3支持多线程主从复制的原理是类似的,Ding Qi。Ding Qi使用表来生成多个线程。Oracle将模式用作一个单元来执行多个线程,不同的库可以使用不同的复制线程。

sync_binlog = 1
这使得MySQL每次同步二进制日志的内容到磁盘。
默认情况下,binlog不是硬盘每次写同步。如果操作系统或机器(不仅仅是MySQL服务器)的崩溃,这是可能的,在binlog最后陈述丢失。为了避免这种情况,你可以用sync_binlog全局变量(1是最安全的价值,但也最慢的),所以,binlog可以同步与硬盘写入后每N binlog。即使sync_binlog设置为1,也有可能是有表的内容,当碰撞发生binlog内容之间的不一致。如果InnoDB表使用的MySQL服务器处理提交的声明,其中写道,整个交易的binlog提交事务InnoDB。如果发生事故的两个操作并重新启动之间,交易是由InnoDB回滚,但仍然存在于binlog,InnoDB安全binlog选项可以用来增加InnoDB表的内容和binlog之间的一致性。(注:在MySQL 5.1的不安全,InnoDB binlog;由于引入了XA事务的支持,这个选项是无效的),这个选项可以提供更高程度的安全性,使每一笔交易(sync_binlog = 1)和binlog(默认为true)innodb log和步骤的硬盘,这个选项是崩溃后重新启动的影响,在回滚事务,从binlog MySQL服务器剪切InnoDB事务回滚。这保证了binlog F成功后的InnoDB表的确切数据,使服务器从服务器保持同步(不接收ROLLBACK语句)。

innodb_flush_log_at_trx_commit(这是很有用的)
抱怨会比MyISAM慢100倍吗所以你可能忘记调整值。1意味着每个事务提交或交易指令需要写日志的默认值(冲洗)硬盘,这是time-consuming.in特别,当电池备份缓存使用。设置2的大量使用,特别是从MyISAM表,是好吧。这意味着不写入硬盘,写入系统缓存,日志仍然会冲到每秒硬盘,所以你通常不会失去超过1-2秒更新。0会更快一点,但安全性差,即使MySQL挂,这可能失去交易数据。数据的值是2,只有当整个操作系统挂。

相关文章

循环中PHP的循环数

循环中PHP的循环数

循环,电脑软件,PHP,复制代码代码如下所示: $link = mysql_connect('localhost ','root ','pwd); mysql_select_db('db); 为SQL = 选择region_id,地区region_grade = 1 local_name; 结果= mysql_query美元($ SQL); $ I = 0; 而($行= mysql_fetch_asso…

Linux命令行修改IP的2种方法

Linux命令行修改IP的2种方法

命令行,修改,种方法,电脑软件,Linux,本文介绍了通过linux命令行修改ip的方法,并通过linux命令行对IP进行修改,可以通过以下两种方式实现。 本文介绍了通过linux命令行修改ip的方法,并通过linux命令行对ip进行修改,可以通过以下两种方式实现。 …

如何修改MySQL默认的空密码WAMP的

如何修改MySQL默认的空密码WAMP的

密码,默认,方法,修改,电脑软件,首先,通过WAMP打开MySQL控制台。 提示输入密码,因为现在是空的,所以直接按回车键。 然后输入mysql,这意味着使用mysql数据库,这就提示数据库发生了变化。 然后输入SQL语句更新用户设置密码,密码('hooray')= 'root…

单位是什么winhelp.exe-过程

单位是什么winhelp.exe-过程

单位,过程,电脑软件,exe,winhelp,综述:简要介绍了winhelp.exe - WinHelp过程 进程文件:单位或winhelp.exe 过程名称:微软帮助文件查看器 过程类别:安全风险的过程 英文描述: winhelp.exe是过程,推出微软帮助文件浏览器,文件,它也被称为正确的方法…

Win8如何修改后缀wwin8修改文件后

Win8如何修改后缀wwin8修改文件后

后缀,修改文件,修改,使用方法,电脑软件,点评:一些类型的文件可以直接修改后缀,然后可以使用。因此,如何Win8改变文件后缀 Win8改变后缀的文件之前,你需要显示文件的后缀名第一。打开计算机;单击;;看;然后选择文件扩展名; 选择文件扩展名之后,可以看到…

如何让win2008远程桌面更流畅

如何让win2008远程桌面更流畅

远程桌面,流畅,电脑软件,点评:在远程桌面作为一种服务系统win2008是一个经常使用的功能,通过远程桌面登录连接,可实现远程操作和管理,因此,优化远程桌面连接的管理是一个非常必要的操作,以确保用户的正常运行更平稳 当使用Windows 2008远程登录功…

在PHP中用数组方法设置cookie

在PHP中用数组方法设置cookie

设置,数组方法,中用,电脑软件,PHP,复制代码代码如下所示: 功能set_cronology($name,美元价值,美元持续时间= 7){ 持续时间=()+(3600 * 24 * $持续时间); max_stored_values = 5美元; 如果(isset($ _cookie {姓名}美元)){ foreach(_cookie {姓名}美元美元美…

在Win7中国混沌编码解决方案

在Win7中国混沌编码解决方案

编码,中国,混沌,解决方案,电脑软件,点评:这个问题是由非Unicode语言设置改变系统语言为英语后设置的问题造成的,因为中国不是Unicode语言,所以它会出现乱码。为中文设置非Unicode语言可以解决这个问题。 上一次有一个用中文读取数据的软件,它是…

stormliv.exe的过程是怎样的

stormliv.exe的过程是怎样的

的是,过程,是怎样,电脑软件,stormliv,评论:对stormliv.exe工艺简介 进程文件:stormliv或stormliv.exe 进程名称:stormliv 过程类别:安全 英文描述: stormliv.exe是一个与宝丰相关的过程。 中文参考: stormliv.exe是暴风的音频软件升级程序。 北…

什么过程是bengine.exe过程bengine

什么过程是bengine.exe过程bengine

过程,电脑软件,bengine,exe,点评:bengine.exe是Veritas备份程序主程序 进程文件:bengine或bengine.exe 过程名称:备份执行7×8作业引擎 过程类别:安全风险的过程 英文描述: bengine.exe是VERITAS Backup Exec的主要备份服务。这个程序 中文参…

如何修改QQ空间名称

如何修改QQ空间名称

修改,空间,名称空间,电脑软件,名称,一、QQ空间名称和个人描述的单词数; 1、QQ空间名称:16个汉字(32个字符); 2、QQ空间个人描述:40个汉字(80个字符)。 两。修改QQ空间名称的方法。 方法1:在QQ空间主页上运行; 登录你的QQ空间,把鼠标放在QQ空间名上…

windows定时关机和Linux定时关机(关

windows定时关机和Linux定时关机(关

定时关机,命令,方法,电脑软件,windows,点评:本文主要介绍了windows定时关机和linux定时关机(关机命令)的方法。 Windows版: 由于各种各样的原因,我们可能需要关闭功能正常。在Windows下的常用的方法,可以利用一些工具或软件(如酷我)实现。但如果你…