我在这里有一个情况,它将通过WAN链接2个MySQL服务器。每个位置(让我们称之为位置X和位置Y)将需要访问三个数据库(让我们称之为A,B和C.
位置X需要使用数据库A作为主数据库,将数据库B作为“查找”只读数据库使用。
位置Y需要将数据库B用作主数据库,将数据库A用作“查找”只读数据库。
BOTH位置需要对复制数据库C的读/写访问权限。(此数据库不包含自动递增列等 - 相当简单的日志记录表。)
本质上,我需要主从和主 - 主复制的组合发生:
X Y
--------
A --> A
B <-- B
C <--> C
在MySQL上设置是否可行?
答案 0 :(得分:1)
MySQLD-Multi是一个可以帮助您实现这一目标的软件包。单个MySQL数据库只能有一个主数据库。如果您设置A系列在一个方向上掌握,并且您的B系列在相反方向上掌握,则他们需要在自己的IP或端口号上运行。同样对于C.
如果您遇到数据传输错误,丢失表空间或被雷鸣般的群体和连接丢失,多主机设置变得非常困难。您可能最终会处于使用基于日志的恢复工具重新同步它们的令人羡慕的位置。请考虑您的应用程序将非常谨慎地使用其“写入”特权连接,并严重依赖读取连接。
以这种方式拆分MySQL实例可以使应用程序之间的延迟更好地隔离。在多主机情况下,如果它们的延迟相差1秒,您通常必须观察延迟并开始使用池中的故障。如果您确实需要用于C系列的MM,请严格考虑在C系列的每一端链接只读从设备,以最大限度地减少写主设备的延迟。
答案 1 :(得分:0)
我建议使用Percona XtraDB Cluster。
PXC是一个MySQL衍生服务器(因此除了复制部分外,所有关于使用它的内容似乎都很熟悉)。它支持通过WAN进行同步双向复制,因此站点X和Y都可以写入其主数据库,然后将其复制到其他站点。 PXC甚至支持对两个站点上的数据库进行写入,这满足了您对数据库C的要求。
Percona XtraDB Cluster是免费的开源软件,与所有Percona产品一样 免责声明:我为Percona工作。