比较其他迁移方法

已完成

Azure Migrate

Azure Migrate是一种“直接迁移”策略,可用于将整个物理或虚拟 SQL Server 从其当前位置移动到 Azure 虚拟机上的 SQL Server 实例,而不对操作系统或 SQL Server 版本进行任何更改。 在迁移期间,源服务器保持联机并继续处理请求,同时源服务器与目标服务器之间会同步数据,从而实现几乎无缝的迁移。

事务复制

需要最大限度减少停机时间并且没有 Always On 本地部署时,可使用事务复制。 可以配置要以发布者身份迁移的本地 SQL Server 数据库,并将 Azure 虚拟机上的 SQL Server 配置为 SQL Server 实例的推送订阅服务器。

使用此迁移需要三个基本步骤:

  1. 设置分发:负责在复制拓扑中分发项目。 项目是数据库对象。 例如,发布中包含的表。
  2. 创建发布:被复制的数据库中的一个或多个项目的集合。
  3. 创建订阅:从订阅服务器发出的、要求发布服务器进行发布的请求。

完成测试并且数据库显示在 Azure 虚拟机中的订阅服务器实例中后,可以将连接定向到订阅服务器数据库。 成功迁移数据后,停止并删除复制。

日志传送

日志传送是一种数据库复制技术,用于 SQL Server 在辅助服务器上维护数据库的备用副本。 它支持将事务日志文件从主(源)数据库连续备份到一个或多个辅助(目标)服务器。

主数据库保持完全正常运行,并充当事务日志备份的源。 然后,事务日志备份会自动复制到辅助服务器并还原,使辅助数据库与主数据库保持同步。

在迁移方案中使用时,它能在故障转移期间实现最少的中断时间,与建立 Always On 可用性组相比,它需要的设置更少。

要了解有关日志传送的详细信息,请参阅日志传送表和存储过程

拆离和附加数据库

可用于迁移数据库的另一种脱机方法是从 URL 拆离数据库然后再附加。 你可以拆离数据库和日志文件,然后将它们传输到 Azure 存储帐户。 然后在 Azure VM 上从 Blob URL 附加数据库。

如果希望将物理数据库文件存储在 Azure 存储中,则此方法很有用。 你可以对较大的数据库使用此方案。 可以通过 Azure 数据资源管理器AzCopy 命令行实用工具传输数据库和日志文件。

转换为 VM、上传到 URL 并部署为新的 VM

使用此方法将本地 SQL Server 实例中的所有系统和用户数据库迁移到 Azure 虚拟机。 在自带 SQL Server 许可证、迁移在旧版 SQL Server 上运行的数据库,或者在依赖于其他用户数据库和/或系统数据库的数据库迁移过程中将系统数据库和用户数据库一起迁移时,都应使用此方法。

导入导出向导/BACPAC

将 SQL Server 数据库迁移到 Azure 虚拟机上的 SQL Server 时,可以选择使用 .bacpac 文件来完成导入过程。 此文件使你能够从 Azure Blob 存储或本地位置的本地存储导入数据。 .bacpac 文件是一个包含来自数据库的元数据和数据的压缩文件。

为了在生产环境中实现最佳缩放和性能,建议你使用 SQLPackage 实用工具。 为表的子集并行运行多个 SqlPackage 命令可以显著加快导入/导出操作。

Azure 存储上的 SQL Server 数据文件

虽然此方法不是一种完整迁移,而是一种混合迁移方法,但将 SQL Server 数据文件存储在 Azure 存储上使组织能够无缝集成本地和云服务。 它可以作为一种长期策略,使组织能够平衡其业务需求,并利用本地和云解决方案的优势。

在 Azure 上托管本地 SQL Server 数据文件可以为希望将数据迁移到云的组织提供一些好处。 它通过允许增量迁移而无需任何应用程序更改或新硬件来简化迁移过程。

大容量复制

bcp 实用工具允许将数据从 SQL Server 表批量导出到数据文件,反向亦然。 它支持为将来的批量导入或批量导出操作生成格式化文件。 该实用工具用途广泛,支持 SQL Server 与其他程序或数据库之间的数据传输。

除非有预先存在的格式化文件可用,否则了解表的架构和数据类型对于有效使用 bcp 命令至关重要。

Azure 数据工厂

可以使用 Azure 数据工厂进行数据迁移,而不是整个数据库迁移。 Azure 数据工厂可以从源 SQL Server 数据库迁移和转换数据。 它通常用于将数据从多个源合并到 Azure SQL 托管实例,尤其适用于商业智能工作负载。 但是,它还可用于将数据移出或移入 Azure 虚拟机上运行的 SQL Server。 为此,会在 Azure 数据工厂中创建数据移动管道,将数据从源传输到目标。

Windows 导入/导出服务

在通过网络上传不可行的情况下,使用 Windows 导入/导出服务方法将大量数据传输到 Azure Blob 存储。 借助此服务,可以将包含这些数据的一个或多个硬盘驱动器运送到 Azure 数据中心,在那里,数据会上传到你的存储帐户中。