MySQL 5.1复制拓扑:多主站

你好:-)

我又一次在寻找新的知识,我是兼职DBA,作为我目前工作的一部分,并且特别感兴趣的是任何文档或阅读有关做出防弹多主复制拓扑的文章 – 有没有人有任何指点?

在过去的angular色中,我已经实现并支持这样的拓扑结构,但是总是有一些“捕捉”(auto_increment_increment,auto_increment_offset是两个的),你只能在最后一刻发现,而且有可能毁掉你的一天。

对于大部分InnoDB工作负载,多主复制有什么大问题?作为一名熟练的DBA,您如何解决这些问题? 如果你使用MyISAM存储事物,那么这张图片是如何改变的呢?或者其他的存储引擎现在已经很好,可以插入,也许有人对Infobright或其他数据仓库有经验?

重点应该放在任何提议的解决scheme的恢复技术上。 DBA如何有效地备份该拓扑,还原过程有多容易? 是否足够强大,以至于在MySQL主服务器popup的情况下,您可以在前面粘贴一个支持TCP的负载均衡器(对源IP进行散列或类似操作),并且具有宕机时间(或该死的接近…)

我已经阅读并且会强烈推荐Baron Schwartz的高性能MySQL,但是我真正追求的是一些真正高质量的网站,并且涵盖了所有要点,并链接到更深入的阅读材料。 谁有一个方便吗? 🙂

红利布朗尼指出任何解决scheme,可以有奴隶“池”挂起它的奇怪的应用程序,特别是thrashy阅读工作量。

非常感谢你。

主 – 主复制是asynchronous的,因此,如果一次写入两台服务器,它肯定会中断。

即使自动增量工作,任何其他独特的索引和许多其他情况可以打破它 – 它太脆弱,不能使用。

但是可以使用master-master作为高可用性解决scheme的一部分,您只需确保应用程序只写入其中一对,并在“干净”的故障切换情况下,例如pipe理员故障切换,等待从属在转换之前赶上。

这在实践中并不是非常困难,但有点不方便。

你的主要的其他select是使用DRBD,这也不是非常困难的设置 – 但在这种情况下,第二台机器甚至不能用作只读副本 – 它只是有一个热备用。 DRBD同步复制底层存储,因此所有内容都安全地写入两台机器。

有一些应用程序是专门devise来容忍多主机的问题 – 这些需要非常仔细的devise,考虑到这种确切的情况 – 在这种情况下,没关系。 你不能使用不是为它devise的应用程序。

自动增量不是唯一的,还是主要的问题。

很明显,你已经尝试了循环复制,给你对自动增量的评论。 那将是我的首选; 你只需要记得正确地configurationMySQL。

您可以看看Sequioa ,它通过坐在你的mysql集群前工作,在写入的情况下处理在每个服务器上执行SQL,在读取的情况下负载平衡。 它还有许多其他function,如允许不同的数据库后端。 这并不简单,操作需要多个步骤,但是您要求它执行一个难题,所以解决scheme也不是一件容易的事。