我有一个生产环境设置,其中我的 drupal 站点托管在两台服务器上,映射到同一个域,每台服务器都有一份代码和数据库副本,运行在 XAMPP 上。所以基本上,它们是两个独立的实体。
现在我让用户通过域访问网站并进行更新,这些更新会发送到其中一台服务器,我发现保持数据库同步是一个真正的问题。
我有什么选择?有没有办法“合并”数据库并保留所有数据?
答案1
您可以通过多种方式解决此问题:
仅使用一个数据库服务器。禁用一个 mysql 服务器并将两个服务器上的 drupal 连接到一个 mysql 服务器。如果您的数据库已加载,这不是一个好的解决方案。
您可以设置主到主 mysql 复制。在这种情况下,您将能够使用两个 mysql 服务器,并且所有更新都将复制到两个 mysql 服务器。这将很好地平衡 mysql 数据库的负载,而无需对 drupal 代码进行任何更改。
您可以使用 mysql 复制主从。在这里您必须修改 drupal 代码,使数据库上的所有更新都将在主服务器上完成,然后复制到从属服务器。如果您对数据库的更新量很少,那么这是一个很好的解决方案,因为此解决方案无法平衡两个 mysql 上的数据库输入和更新。但主从复制的配置和维护要简单得多。
您可以为 mysql 数据库设置第三台服务器,并将两个站点连接到同一个 mysql 服务器。然后,您可以将 Web 服务器配置为主数据库的从属服务器,仅用于备份目的
答案2
我认为您需要了解主-主/多主复制。在这种情况下,两个服务器都拥有主数据库,并且每个更新都将提交到数据库,然后复制到另一个数据库,从而使您的数据库保持同步。
http://en.wikipedia.org/wiki/Multi-master_replication
http://xeround.com/blog/2011/10/master-master-database-replication