如何在不使用复制的情况下同步不同位置的两个数据库


How to sync two databases in different locations without using Replication?

我接手了一个由另一位开发人员编写的项目。该客户要求提供一个灾难恢复解决方案,在该解决方案中,数据库在两个托管提供商之间同步。我想,太好了,我可以设置复制,然而,项目进行到一半时,我意识到主站点在一个共享主机上,因此,我无法访问my.cnf或任何非核心文件。

好吧,这个解决方案目前是不可能的,所以我想我会在PHP中复制SQL查询(我知道这确实不是一个好的做法,但这是必要的),代码写得很差,有一些自定义函数,大约有200个文件,并不是所有这些都使用这些函数进行数据库调用等,非常耗时的任务。

有人知道另一种方法可以让不同服务器上的两个数据库始终保持同步吗?

我支持转移到VPS的建议。但我推荐Digital Ocean或Linode,而不是亚马逊AWS。它们更实惠,也更容易安装。事实上,如果当前网站位于"经济型"共享主机上,您的客户可能会喜欢Digital Ocean的定价(不,我不为他们工作)

一旦该网站在例如纽约的VPS上,您将可以自由地在另一个区域(旧金山、伦敦等)建立复制系统。这将使客户在最初的搬迁过程中感到放心。

假设客户的需求在5美元的服务器资源范围内,那么两台Digital Ocean VPS每月的起价为10美元。