MySQL的半同步复制的介绍

MySQL的半同步复制的介绍
前言

在MySQL 5.5版本默认是异步复制(异步)模式,和MySQL 5.5提供半同步复制模式以插件的方式。在介绍半同步,我们先了解:半同步异步和同步同步。

异步复制模式

主库返回写入binlog交易事件,然后返回到应用程序,它不保证任何提交的事务将被传递到任何奴隶和成功应用。

全同步复制模式。

当主人有交易活动,主要的图书馆将等待交易被传送给所有的奴隶,在所有的交易或事件通知主图书馆的奴隶和应用,将返回,交易已经成功。

可以从异步模式的定义见不能保证数据的安全性,因为它不等待主库提交事务的奴隶在磁盘上,并同步模式因为需要等待所有的奴隶确认已提交事务成功得到应用,那么它将把交易延迟。半同步以妥协的方式确保提交的事务必须在至少两机存在(主图书馆和任何备用库),然后返回到客户端交易成功。

一、半同步复制的定义

半同步复制模式,在主库提交事务或事件,它会等待至少一个从通知主库,从已收到过事件写回到成功写作背层中继日志,或者直到传输日志发生的时间。
两个优点和缺点

优点:当事务成功地返回给客户机时,事务存在于至少两台机器上,以增强数据的安全性。

缺点:半同步对数据库的性能有一定的影响,因为该事务的提交必须等待从反馈的性能损失取决于TCP / IP网络,即传输时间,交易的传输时间和等待从反馈接收交易。

三和MySQL半同步的特性

1当从属连接主库时,它将告诉主库它是否是一个半同步模式。

2如果主库启用了半同步模式,并且至少有一个启用了自启用的半同步模式,在事务提交中的主库事务处理中进行操作,并且至少有一个奴隶通知主库在进程处于块或等待状态之前接收所有事务,直到超时发生。

3当且仅当传递事件传递给奴隶时,它被写入到中继日志,并刷新到磁盘将通知主库完成。

4半同步复制必须启用的两端,否则,如果任何一个没有设定,主要和备份之间的复制模式将改变异步复制模式。

5,当所有的奴隶是没有回到在主图书馆(rpl_semi_sync_master_timeout默认值)时,事件会被成功接收,并备份将改回原来的异步状态。

其中,第二点MySQL 5.7进行了优化,ACK收集线程已经在等待库成功接收事务通知。这将在后面详细介绍,5.7 semisync复制增强。

四。异常处理

编写库崩溃时,主库在等待超时后关闭半同步的特性,并将其降级为普通异步复制,这是简单的。

MySQL的error.log会提示

复制代码代码如下所示:

140523 22:26:00 {警告}超时等待回复的binlog(文件:mysql-bin.000002,名次:465893519)。

140523 22:26:00 {注}半同步复制关闭。
处理情况更困难的是:当主持人 /主库崩溃,可能会有一些事务已经在主库提交,但还没有来的及任何图书馆设备,即,这些事情都不返回给客户端,所以客户端不知道发起交易如果交易已经完成,墙上的交易。在这个时候,如果客户没有开关,只是主图书馆崩溃恢复后,继续在主库操作,客户会发现前面的墙事务已经完成,可以继续开展业务的后续处理;另一种情况下,如果客户端故障转移的准备,客户会发现前面的墙跨行动没有成功,你将需要做这些事情,然后继续下面的业务处理,而主要准备是不一致的,需要准备数据检查通过主要检查哪个库是正确的,然后修复。

五、总结

总之,与MySQL 5.5版本前的异步复制模式半同步相比,已经有了很大的进步,提高了数据的安全性,可以通过安全性来改变某些性能损失。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部