如何在同步模式下设置两个mysql服务器

基础设施

我有两个数据库服务器,运行在两个不同的盒子上。 其中一个作为我的Web应用程序的主数据库,另一个作为辅助数据库工作。 辅助数据库由mysql服务器中的复制工具更新。 主数据库服务器作为主服务器,辅助数据库服务器作为客户端工

需求

目前,我的Web应用程序只与主数据库进行交互。 我想添加一个function,如果主要由于某种原因closures,将使应用程序使用辅助数据库服务器。 现在,我需要一些工具/程序来将辅助数据库中所做的更改同步到主数据库。

基本上我正在寻找一个function,将使我的数据库始终保持同步。 请build议我,我该如何做到这一点?

谢谢,

维杰

你需要做一些称为多主复制(又名主 – 主复制)的东西。

有很多 指导可以引导你完成整个过程 。

有两种使用主 – 主复制设置的方法。 不正确的方法是同时写入(插入/更新等)到两个主人。 虽然MySQL提供的configuration参数可以帮助你,如果你决定这样做,我build议你不要依赖这种行为。 特别是,不要认为你可以把你的写入作为某种负载平衡的方式跨越机器,这是没有的。 所有写入都将在所有服务器上进行。

正确的方法是使用一个主设备作为热备份,并且一次只写一个主设备。 相信我这会在事情出错的时候为你节省很多心痛。 甚至还有一个工具MMM (用于MySQL的多主复制pipe理器),可以帮助监视和故障转移。 它确实需要第三台服务器来监视主人。

最后一件事 不要,我再说一遍, 不要试图通过增加额外的主人来创build一个循环“向外扩展”。 就像我刚才所说的那样,由于每个服务器都必须每隔 一个服务器执行一次写操作 , 对于主人之一的非暂时故障,修复复制也是一个完整的噩梦 。 一个服务器的丢失会“中断”后面的每个服务器,因为他们不再从服务器的下游获取更新。