复制从站的空间较小

时间:2013-04-05 14:31:35

标签: mysql replication database-replication database-administration master-slave

我需要设置复制

所以为此我从主服务器上备份并导入到slave中,现在slave有20 GB的可用空间, 当我恢复备份主时获得5 GB以上的数据

之后我启用了复制

现在的问题是,当来自中继日志的数据被写入从服务器时,会生成许多新的中继日志,并且我在服务器上没有空间....

relay-log-purge 已启用,但从中继日志到数据库的写入过程非常缓慢......

3 个答案:

答案 0 :(得分:1)

将binlog格式切换为“ROW”可能会带来性能优势。在混合格式中,mysql正在编写基于binlog语句(slave必须重新解析并再次规划策略),并且在某些情况下只切换到行格式(http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html)。

可以即时完成:

SET GLOBAL binlog_format = 'ROW';

使用基于ROW的复制,您可以卸载从属设备,这使得它们更容易跟上主设备。唯一的缺点是你可能有更大的日志文件但是从这个“得到5 GB以上的数据”我假设你主要做插入所以没有区别。

最好是试一试,看看它的表现如何。

其他选项,直到复制赶上将slave上的innodb_flush_log_at_trx_commit更改为2。只做这个暂时的。

SET GLOBAL innodb_flush_log_at_trx_commit = 2;

答案 1 :(得分:0)

当你获得更少的磁盘空间警报(达到90%)

时,只需关闭slave io线程
mysql> stop slave io_thread;

并在一段时间后重新开始

mysql> start slave io_thread;

关于生产这是唯一最好的选择......

答案 2 :(得分:0)

尝试将此添加到您的配置

中继日志空间限= 5G