您的位置: 网界网 > 软件 > 正文

MySQL 复制滞后怎么办?其实方法很简单

2015年02月13日 22:12:15 | 作者:MOSHE KAPLAN | 来源:TechTarget中国 | 查看本文手机版

摘要:要理解你的复制行为为何滞后,然后了解如何使用正确的方法来解决滞后问题。

标签
MySQL
SSD加速
MySQL复制

MySQL复制被普遍认为是十分有效的,主服务器进行更改后,从服务器可在几秒内做出相应的改动。但如果发生两者之间同步缓慢的问题, 那么主要有以下两个原因:

从结点磁盘问题: 复制操作对每个数据库都是由一个线程来完成,通常执行变更时的滞后是由磁盘延迟引起的。在这种情况下,您应该考虑使用SSD加速这个过程。

带宽低/网络延迟高: 如果两个服务器位于远程位置(高延迟的情况下)或服务器之间的存在带宽较低的问题,我们应使用下面的方法之一或者两者结合使用,以最大限度地减少服务器间通信量。

使用基于语句的复制:基于行的复制会为数据库中每一行的变更创建一个SQL 语句。基于语句的复制是应用程序发送的实际SQL语句的记录。通常基于语句的复制在记录大小方面更为有效。然而,你应该意识到,当你使用UPDATE ... LIMIT1时,基于语句的复制可能并不十分有效

压缩通信量: MySQL支持使用 slave_compressed_protocol参数进行日志压缩复制。这种方法将减少高达80%的服务器之间的通信。然而,压缩是计算密集型的,所以你应该意识到这样会产生一些额外的CPU利用率(这通常不属于数据库中的问题)。这个参数应该在两个服务器上都启用:

动态的从MySQL命令行输入:SET GLOBALslave_compressed_protocol = 1;

在MySQL配置文件中进行配置:

#compress master-slave communication

slave_compressed_protocol = 1

最起码,要理解你的复制行为为何滞后,然后了解如何使用正确的方法来解决滞后问题。是的,它就是这么容易,且十分有效。

[责任编辑:软件频道 yu_xiang@cnw.com.cn]