我需要设置复制
所以为此我从主服务器上备份并导入到slave中,现在slave有20 GB的可用空间, 当我恢复备份主时获得5 GB以上的数据
之后我启用了复制
现在的问题是,当来自中继日志的数据被写入从服务器时,会生成许多新的中继日志,并且我在服务器上没有空间....
relay-log-purge 已启用,但从中继日志到数据库的写入过程非常缓慢......
答案 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