我正在寻找MySQL数据库的多主配置,这比使用循环方式更安全/有效。
一般布局:
交互要求(A< - >(B-Z)):
集中的数据大多是静态的。添加的外围数据库更改主要是销售记录,不一定需要立即到达节点。在合并bin日志时,所有表都使用auto_increment_increment
和auto_increment_offset
来处理任何覆盖错误。
目前,已经建立了循环系统,但这绝对不是理想的。我不希望外围节点相互依赖或必须编写脚本来重新分配备份主数据库,以便在停机期间保持链接活动。我希望在中央数据库和每个外围数据库之间建立主 - 主设置。
如果您认为完全不同的范例是合适的,请随意推荐。软件在同一网络上运行,因为每个外围服务器都需要最佳速度,并且本地互联网中断的故障保护最终会以某种方式转移到其他外围数据库。
如果您可以推荐其他数据库软件,如MariaDB或PostgreSQL,并支持我想要的内容,请随时使用他们的框架发布解决方案。只要数据库是关系型的,我很可能会设法移植。
答案 0 :(得分:0)
是的,跨3个节点运行异步群集很糟糕 - 实际上它甚至可以吸引2个节点。 Percona和MariaDB都是MySQL的分支,Galera cluster支持MySQL和MySQL本身。
这3个中的任何一个都将替代您当前的MySQL服务器,但有some caveats。
他们应该只是中央数据库的主人和奴隶。
你似乎对主/从关系感到有些困惑。对于高可用性,可伸缩性和性能,您确实希望所有节点与数据分区/联合相同或运行(但分区/联合实际上很难)。没有“中央数据库”。
您没有提及与您的数据库的对话。如果是PHP,mysqlnd-ms
中还有一个附加选项(请注意,切换到PstgreSQL,虽然是一个优秀的产品,但需要进行大量的回归测试和代码重写)。