我目前正在为我的数据库使用共享托管服务提供商。它大约15GB,并且想开始使用更强大的东西(考虑使用Digitalocean)。最终我也会切换我的网站,但是现在我只想移动数据库,然后将我的网站(仍在共享主机提供商上)指向新的数字海洋服务器。在我相信事情都很好之后,我最终也会移动代码。
我在这里查看这篇文章: https://www.digitalocean.com/community/tutorials/how-to-migrate-a-mysql-database-between-two-servers
这个想法似乎很好,但我担心错过一些数据和整个策略。我认为我的数据库足够大,以至于在复制数据库并进行设置所需的时间内,我会错过发生的新事务(可能大约有300条记录没有太多)
解决方案是:
有更好的方法吗?也许我将数据分叉,以便暂时同时转到两个数据库,然后我可以安全地将遗留数据放入新的数据库,只有当一切都相同时,我才能切换?
任何建议和帮助都将不胜感激!
答案 0 :(得分:1)
在页面仍在运行时,保持它们两者同步的唯一方法是主从设置,在您切换PHP代码之前,主设备是旧数据库。
如果您不能这样做,则需要在移动数据时禁用对旧数据库的所有写入请求。 Mysql可以以--read-only
模式启动。您当然可以建立一个维护页面并阻止对数据库的所有访问。
然后在最后一次写入请求之后获取一个新转储,将其复制,然后将PHP指向新数据库。之后,您可以删除维护模式。
你可以使用你在3中提到的方法,但这是有风险的。您需要调整自动增量值,以便为缺少的条目腾出空间。
有趣,正如我即将编辑此内容一样。 SO进入数据库传输的只读模式; - )