迁移网站 - 在迁移期间保持数据库同步

时间:2014-11-23 20:29:35

标签: php mysql database server

我即将将网站从一个服务提供商迁移到另一个服务提供商。 先前的迁移是由托管公司执行的,这导致了很大的问题,用户数据/帖子/注册被发布到2个不同的服务器,具体取决于他们使用的DNS服务器。 之后合并数据库很困难,因为在两个数据库上,自动增量值已经移动,当合并2个数据库时,主键/自动增量值重叠,导致该行未被导入/插入,或者该行覆盖前一个。

有没有办法......将到达旧服务器的用户重定向到新服务器,以避免数据库不同步。

我可以使用任何技巧/提示来避免再次发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

设置两台服务器并进行测试以确保它们都能正常工作。

在新服务器(您要切换到的服务器上)将所有请求代理回旧服务器Apache示例

ProxyPass / http://oldip:80/
ProxyPassReverse / http://oldip:80/

将DNS切换到指向新服务器的位置。

等待24-48小时,确保所有流量现在都通过新服务器路由回旧服务器。

删除代理设置。 停止阿帕奇 做一个数据库的备份 将它们发送到新服务器 恢复数据库备份 启动apache。

您可以编写一个脚本来执行此操作。

要加速数据库备份,您可以使用binlog,这样您只需要传输更新的

当您对新服务器正常工作感到高兴时。停止旧服务器运行。

应该在少量停机时间内工作。

或者,减少DNS上的TTL(注意:并非所有DNS缓存都尊重这个,如果它很小)等待该更改进行处理 切换到具有更高TTL的新服务器,由于旧的TTL非常小,大多数人都不会受影响。

另外,使当前站点只读,直到切换发生。