【问题标题】:Transferring a MySQL database from a shared host to a cloud provider将 MySQL 数据库从共享主机传输到云提供商
【发布时间】:2017-12-12 16:39:21
【问题描述】:

我目前正在为我的数据库使用共享托管服务提供商。它大约 15GB,并且想开始使用更强大的东西(考虑使用 Digitalocean)。最终我也会切换我的网站,但现在我只想移动数据库,然后将我的网站(仍然在共享托管提供商上)指向新的数字海洋服务器。在我相信事情很好之后,我最终也会将代码移过来。

我在这里查看了这篇文章: https://www.digitalocean.com/community/tutorials/how-to-migrate-a-mysql-database-between-two-servers

这个想法似乎不错,但我担心会丢失一些数据和整个策略。我认为我的数据库足够大,以至于在复制数据库和设置它所需的时间里,我会错过发生的新事务(可能大约 300 条记录不算太多)

解决办法是:

  1. 复制数据库,并对其进行设置以确保其正常工作
  2. 更新我的 PHP 代码以指向新数据库
  3. 在旧数据库上运行 MySQL 脚本以获取任何创建日期大于 x 的记录(我仍然认为我会在这里得到重复的记录)或者主键为 >= x 和

有没有更好的方法来做到这一点?也许我分叉了数据,所以它暂时同时进入两个数据库,然后我可以安全地将遗留数据放入新数据库,只有当一切都相等时,我才会切换?

任何建议和帮助将不胜感激!

【问题讨论】:

    标签: php mysql database database-migration digital-ocean


    【解决方案1】:

    在页面仍在运行时保持两者同步的唯一方法是主从设置,在您切换 PHP 代码之前,主数据库是旧数据库。

    如果您不能这样做,则需要在移动数据时禁用对旧数据库的所有写入请求。为此,Mysql 可以以--read-only 模式启动。您当然可以只建立一个维护页面并阻止对数据库的所有访问。

    然后在最后一次写入请求后获取一个新的转储,将其复制过来,然后将 PHP 指向新的数据库。之后,您可以删除维护模式。

    您可以使用您在 3. 中提到的方法,但这是有风险的。您需要调整自动增量值,以便为丢失的条目腾出空间。

    很有趣,就在我正要编辑这个的时候。所以进入只读模式进行数据库传输;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 2019-01-17
      相关资源
      最近更新 更多