首页 > 解决方案 > 将数据从 MariaDB 迁移到 SQLServer

问题描述

我们计划将所有数据从 MariaDB 迁移到 SQLServer。任何人都可以建议任何迁移数据的方法,这样就不需要停机,也不会丢失数据。

在这种情况下,我在这里浏览了一些帖子,但没有得到太多的想法。

标签: sql-servermariadb

解决方案


您可以查看用于迁移数据的 SQL Server Integration Services 功能。

或者,您可以使用新 SQL Server 实例中的链接服务器手动创建迁移脚本。

或者您可以使用 BCP 执行批量导入(这非常快,但需要中间步骤才能将数据放入文本文件中)。

更重要的是您希望如何实现“无停机时间”的要求。我想迁移例程需要一些功能要求,这可能难以使用通用迁移工具实现,例如:

  • 可以在多个批次/运行中执行迁移(跳过已迁移的数据),以及

  • 可以在不同的解决方案中实现迁移的不同阶段,例如批量导入(使用文本文件和临时表)历史数据(不再更改),但通过实时数据库连接实时查询 MariaDB 中的最新更新/MySQL 数据库。

迁移策略也可能很大程度上取决于 MariaDB/MySQL 中数据的大小,以及数据库及其数据的结构。也许您想保留自动生成的主键值,因为系统要求它们保持不变。也许您需要对一些奇异的表字段使用不同的数据类型。也许您需要重新实现一些数据库逻辑(如存储过程和函数)。等等等等。

对于这类迁移项目,很难给出一些特别的建议;正如 Tim Biegeleisen 已经评论的那样,这可能是一项相当复杂的工作,即使对于“小型”数据库也是如此。它实际上总是需要大量研究、大量准备、测试运行(在使用数据库备份的测试环境中)、更多测试运行、最终测试运行等。当然还有一些分析、指标、日志记录和报告用于故障排除(并了解在实际迁移过程中会发生什么)。如果迁移将长期运行,您需要确保它不会冻结实时生产环境,并且您可能还需要在迁移期间某种形式的进度指示。

并且 - 最后但并非最不重要的一点 - 您肯定希望有一个“B 计划”或快速返回策略,以防实际迁移失败(尽管做了所有这些仔细的准备)。

希望我没有忘记什么... ;-)


推荐阅读