我想多家一个专有的基于Web的应用程序,为一个相对较小的用户群,数据库大小适中。 可伸缩性不像极高的可用性那么重要。 该系统具有非常基本的架构:运行在单个Linux VPS上的PHP攻击标准MySQL服务器。
我正在考虑在不同地理位置的数据中心中使用多个VPS,这样如果用户连接到一个服务器位置时遇到问题,他们可以尝试另一个位置(我有关于如何半自动化故障转移和可能地理位置的单独想法,但这是另一个问题)。 PHP应用程序代码和其他文件将被rsynced; 然而,我还没有解决如何同步数据库…这是合理的使用MySQL群集呢?
如果一个节点发生故障,其他节点必须继续工作。 当节点恢复时,它应该自动恢复同步。 考虑到数据中心之间将存在WANtypes的延迟,写入速度不能依赖于群集内连接。 数据一致性是可取的,但不是首要的优先事项。 系统的简单性很重要 – 我不能花费下一个月的时间来计算数据库的细微差别。
如果MySQL Cluster不适合这个,那么还有什么其他的select可以考虑?
在我看来,一个更简单的解决scheme是一个MySQL master-master复制configuration,其中两个站点都将查询推送到另一个站点并执行它们。 在这里可以find一个到目前为止的howto:
http://www.howtoforge.com/mysql_master_master_replication
如果您有一个现有的数据集,可以在执行这些步骤之前使用mysqldump导出数据库,以便在configuration完成之前将其插入从站。 只要确保在导出的时候获取master_log_position,就可以知道从哪里来。 我强烈build议构build一个开发环境,以便您可以了解它是如何工作的。
MySQL集群通常不适合Web应用程序。
这是一个奇特的解决scheme,但检查Galera
我记得在某处他们说WAN复制是可能的。
还有钨企业 。
Galera是同步复制,而钨是asynchronous的。
干杯