Mysql 如何正确地将数据从旧服务器迁移到新服务器

Mysql 如何正确地将数据从旧服务器迁移到新服务器,mysql,laravel,Mysql,Laravel,我有几十张桌子上的数百万张唱片 我想修改、删除、转换某些记录或表结构 然后将新转换的数据库传输到另一台服务器,停机时间为6小时 我当前的想法: 临时启动高性能VPS(迁移服务器) 连接旧数据库 使用laravel队列运行转换 并将转换后的数据存储到(迁移服务器) 转储.sql文件 并导入到新服务器 我的想法怎么样?还是有更好的办法?tq如果您可以在云中切换,为什么需要6小时?似乎所有的事情都可以在一台服务器上完成。停机时间不是在切换服务器时,而是在对模式进行不兼容的升级时 我将剥离数据集的一

我有几十张桌子上的数百万张唱片

我想修改、删除、转换某些记录或表结构

然后将新转换的数据库传输到另一台服务器,停机时间为6小时

我当前的想法:

  • 临时启动高性能VPS(迁移服务器)
  • 连接旧数据库
  • 使用laravel队列运行转换
  • 并将转换后的数据存储到(迁移服务器)
  • 转储.sql文件
  • 并导入到新服务器

我的想法怎么样?还是有更好的办法?tq

如果您可以在云中切换,为什么需要6小时?似乎所有的事情都可以在一台服务器上完成。停机时间不是在切换服务器时,而是在对模式进行不兼容的升级时

我将剥离数据集的一个副本,在新副本上练习迁移。这可能不需要更高性能的服务器。重复上述步骤,直到对流程满意为止

通过这样做,您将发现迁移需要多长时间

然后。。。下线;在生产服务器上进行迁移;删除旧数据库;回到网上

甚至在此之前,我会看看是否可以在零停机的情况下完成一些步骤。我喜欢一种技术,尽管它很复杂:

更改应用程序以处理旧模式和新模式;改变图式;清理代码。(如果有多个应用程序和/或数据库服务器,这尤其方便。听起来你还没有达到那个规模。)

请注意哪些模式更改快,哪些更改慢


至于卸载和重新加载。。。当我有了它的奢侈时,像
INSERT INTO new_db.t SELECT.这样的事情就容易多了。。在单个实例上使用旧的_db.t

看看谷歌上的ETL工具。这些工具是为迁移(大型)数据库而构建的。我个人在一个项目中使用过RapidMiner,它对我的用例非常有效。使用ETL工具不是一个选项,用例太复杂了@Bodhi@Vortechron复杂案例是ETL工具的用途。