MySQL复制A-> B-> C

我设置的主复制 – >奴隶/主 – >奴隶和复制为主 – >奴隶它的工作正常,但是当我在my.cnf中启用此选项

log-slave-updates=1 

为更新主箱日志我的复制开始是慢和时间

 Seconds_Behind_Master 

在成长。

我使用innodb引擎,但数据库是大的。 任何想法如何我可以提高复制,看起来像networking不是问题。 也是我想使用

 binlog_format=ROW 

但主人正在使用默认设置复制“声明”,我不能重置主人;)

谢谢 …

试着弄清楚什么是瓶颈

  • 是奴隶的CPU限制[在5.1和5.5中的MySQL复制是单线程的,它只会使用一次核心]。 如果是这样 – 考虑把更快的CPU放在从属主机上。
  • 它是主机上的io子系统吗? 如果是这样的话 – 想想更多的主轴,ssd或者可能是RAID卡的更大的caching在回写模式,以“吸收”写入峰值

    你也可能想要寻找像“ 钨复制器 ”之类的[mysql]框之外的解决scheme。

你真的有3个主人asynchronous复制? 这是一个非常糟糕的主意。 如果你失去了一个节点,你的剩余节点会变得越来越不同步。

还有我认为使用… binlog_format = ROW

这取决于你的查询是什么样子,这可能会有帮助,但混合模式可能是一个更好的解决scheme。

我使用innodb引擎,但数据库是大的。

如果数据库的大小正在影响复制性能,那么你显然已经获得了巨大的空间,可以通过模式更改和查询优化来提高性能。

但主要是使用默认设置复制“声明”,我不能重置主

为什么不?

您好,我通过改善innodb的性能来解决问题。 一般来说,我改进了io操作。

 innodb_flush_log_at_trx_commit = 0 innodb_flush_method = O_DIRECT innodb_write_io_threads = 32 innodb_read_io_threads = 32 innodb_thread_concurrency = 16 

我也改变了btrfs

 nospace_cache 

这些变化后,所有工作正常;)thx求助