查看迁移策略和工具

已完成

在 SQL Server 迁移的上下文中,仔细规划对于确保迁移成功至关重要。 此规划涉及迁移的方式原因两个方面。

SQL Server 迁移过程的可视化展示,其中强调了解它的好处、利用工具和平衡停机时间,以实现成功迁移。

  1. 为了解原因,需要认识到迁移完成后的好处。
  2. 方式包括选择适当的迁移工具和制定全面的迁移计划。
  3. 此过程的一个关键因素是评估组织愿意容忍的停机时间。 尽量减少迁移过程中的停机时间对于保持运营效率和连续性至关重要。

在此迁移项目中,你的团队已通过启动会议开始了该过程。 你的角色是探索用于迁移几个 SQL Server 的工具,并提供对未来 SQL 许可成本的潜在影响的见解。 此外,你们需要就可接受的停机时间达成一致。 项目经理还希望加入一个测试阶段,在此期间,将迁移几个服务器作为运行完整迁移前的测试。

了解迁移的好处

你可能通过 Hyper-V 或其他供应商的虚拟机在自己的基础结构上使用虚拟机。 因此,迁移到这个平台不会给你带来一个陡峭的学习曲线。

通过使用虚拟机 (VM),你可以完全掌控主机操作系统和 SQL Server 实例的管理。 相较本地计算机,你可以更容易配置和管理 SQL Server 的高可用性、灾难恢复和修补。 还可以设置自动备份和更新,以减轻整体管理负担。 在 Azure 虚拟机上运行 SQL Server 时,完全支持以下 SQL Server 组件:

  • SQL Server 事务复制
  • AlwaysOn 可用性组
  • Integration Services
  • Analysis Services
  • Reporting Services
  • 日志传送

SQL Server 经过优化,可以将现有的 SQL Server 应用迁移到 Azure 虚拟机,最高支持 256 TB 的存储空间。 SQL Server 的所有版本都可用,它们提供与 SQL Server 的本地版本 100% 的兼容性。

授权

有三种类型的许可模式可用于 Azure 托管的 SQL Server 虚拟机。 评估哪一种模式最适合你的迁移方案。

  • “即用即付 (PAYG)”模式意味着 Azure VM 的每秒运行成本包括 SQL Server 许可的费用。

  • 自带许可 (BYOL)”模式也称为 Azure 混合权益 (AHB),它允许在运行 SQL Server 的 VM 中使用你自己的 SQL Server 许可证,你只需支付 VM 使用费。 此选项仅适用于拥有企业协议的客户。

  • 高可用性/灾难恢复 (HA/DR) 许可证模型用于 Azure 中的免费 HA/DR 副本。 如果你有软件保障,则可以使用 SQL Server 实现混合灾难恢复计划,且不会因被动灾难恢复实例产生额外的许可费用。

提示

要了解如何更改 Azure 中 SQL 虚拟机的许可证模型,请参阅更改 Azure 中 SQL 虚拟机的许可证模型

网络

如果在 Azure 门户中预配 SQL Server VM,则可以选择指定“SQL 连接”的类型,包括:

  • 公共:通过 Internet 连接到 SQL Server。
  • 专用:连接到同一虚拟网络中的 SQL Server。
  • 本地:在同一虚拟机上本地连接到 SQL Server。

如果想要通过 Internet 连接到 SQL Server 数据库引擎,请选择“公共”。 门户自动执行以下步骤:

  • 为 SQL Server 启用 TCP/IP 协议。
  • 配置防火墙规则以打开 SQL Server TCP 端口(默认值为 1433)。
  • 启用公共访问所需的 SQL Server 身份验证。
  • 在 VM 上将网络安全组配置为 SQL Server 端口上的所有 TCP 流量。

在门户中为“SQL 连接”类型选择“专用”时,Azure 会将大多数设置配置为相同的“公共”。 区别在于,不存在允许 SQL Server 端口(默认值为 1433)上的外部流量的网络安全组规则。 可以在 Azure 门户中更改 SQL 虚拟机的连接设置。

密钥管理

SQL Server 提供的加密功能要求你管理和存储加密密钥。 Azure Key Vault (AKV) 服务专用于在一个高度可用的安全位置改进这些密钥的安全性和管理。 SQL Server 连接器使 SQL Server 能够使用 Azure Key Vault 中的这些密钥。

你可以使用 AKV 集成功能节省时间。 启用此功能后,它将自动安装 SQL Server 连接器。 然后,该功能将可扩展密钥管理 (EKM) 提供程序配置为访问 AKV,并创建可供你访问保管库的凭据。

虚拟机大小调整

若要开始,可以选择具有所需版本和操作系统的 SQL Server 虚拟机映像。 此外,还可将 CPU 数量和内存配置为适合你的工作负载的大小。

用于确保 SQL Server 适用于本地工作负载的许多数据库性能调整选项仍然适用于在 Azure VM 上运行的 SQL Server。 你还需要考虑其他注意事项,包括 VM 的大小和磁盘的配置。 使用以下清单作为指导,以确保你为在 Azure 虚拟机上运行的 SQL Server 设置了最佳性能。

性能指标 优化选项
虚拟机
  • 对于 SQL Server Enterprise 版,应该选择的最小虚拟机大小为“DS3_v2”或更高
  • 对于标准版或 Web 版,请使用“DS2_v2”作为最小大小
存储
  • 将“高级 SSD”用于生产工作负载
  • 开发/测试环境的标准存储
  • 确保存储与虚拟机位于相同的位置
磁盘
  • 使用至少 2 个 P30 磁盘(一个用于日志,另一个用于数据文件,包括 TempDB)
  • 对于需要约 50,000 IOPS 的工作负载,请考虑使用超级 SSD
  • 避免使用操作系统或临时磁盘进行数据库存储或日志记录
  • 在托管数据文件和 TempDB 数据文件的磁盘上启用读取缓存
  • 请勿在托管日志文件的磁盘上启用缓存
  • 条带化多个 Azure 数据磁盘,提高 IO 吞吐量
  • 使用规定的分配大小格式化
  • 将 TempDB 放在本地 SSD 上,用于任务关键型 SQL Server 工作负载(在选择正确的 VM 大小后)
I/O
  • 启用数据库页面压缩
  • 对数据文件启用即时文件初始化
  • 限制数据库自动增长
  • 禁用数据库自动收缩
  • 将所有数据库(包括系统数据库)转移到数据磁盘
  • 将 SQL Server 错误日志和跟踪文件目录移到数据磁盘
  • 设置默认的备份和数据库文件位置
  • 启用锁定页面
  • 应用 SQL Server 性能修复程序

可能有一些特定于工作负载的特定性能设置需要应用。 迁移之前,请确保在测试环境中对设置进行了测试。

支持迁移的工具和功能

有许多将 SQL Server 迁移到 Azure 虚拟机的方法。 此过程的第一步是配置已安装 SQL Server 的 Azure VM。

通过使用压缩后的备份文件将数据库文件迁移到 Azure VM,你可以获得最出色的数据传输性能。

若要最大程度地减少数据库迁移过程中的停机时间,请使用“Always On”方案或“事务复制”方案。 如果无法使用上述任何一种方法,你仍然可以手动迁移数据库。

这些是主要的工具和功能,用于支持 SQL Server 数据库并将其迁移到 Azure 虚拟机上运行的 SQL Server。

  • 适用于 Azure Data Studio 的 Azure SQL 迁移扩展 Azure SQL 迁移扩展由最新版本的 Azure 数据库迁移服务提供支持,有助于评估迁移就绪情况,为 Azure 资源提供适当的 SKU 建议,并促进将 SQL Server 数据库迁移到 Azure 的过程,非常适合中小型数据库。 它由最新版本的数据迁移服务提供支持,还提供高级评估功能,可评估准备迁移到 Azure SQL 的 SQL Server 数据库。

  • 使用 Azure Blob 存储进行备份和还原 可以将数据库从 Azure Blob 存储还原到在 Azure 虚拟机上运行的 SQL Server。

  • 从 URL 拆离和附加 拆离你的数据库和日志文件,然后将它们传输到 Azure 存储帐户。 然后在你的 Azure 虚拟机上从 Blob URL 附加数据库。

  • 日志传送 日志传送是将 SQL Server 数据库迁移到 Azure VM 的方法。 它涉及使用源服务器的事务日志备份在目标服务器上持续同步数据库的辅助副本。 准备就绪后,最终日志备份会应用到 Azure VM,从而在最短的停机时间内实现无缝迁移。

  • Azure Migrate Azure Migrate 是一项全面的迁移服务,支持多种迁移方案,包括 SQL Server 迁移。 Azure Migrate 提供了一套工具,旨在大规模评估和迁移本地服务器、基础结构、应用程序和数据,以便将它们迁移到 Azure。

  • 数据库实验助手 (DEA) 如果你对性能有疑问,可用它来评估目标服务器是否可以处理工作负载。 你可以使用分析指标来提供对比数据,以便确定目标版本在迁移后是否会提供更好的体验。

  • 数据迁移助手 (DMA) 用于将数据库架构、数据、用户、服务器角色、SQL Server 和 Windows 登录从本地 SQL Server 迁移到 Azure 虚拟机上的 SQL Server。 该工具首先运行评估,该评估会提示你解决任何兼容性问题。 然后,你可以使用相同工具将评估后的数据库架构和数据迁移到 Azure。

注意

虽然数据库迁移助手是一个可用且实用的工具,但我们建议你使用 Azure 数据库迁移服务以开展大型迁移并获取增强的整体体验。

提示

要了解如何评估要迁移到 Azure SQL 的本地 SQL Server 实例,以及如何在升级后发现数据库可以从中获益的目标 SQL Server 平台中的新功能,请参阅评估 SQL Server 数据库以迁移到 Azure SQL 模块

定义迁移方法

考虑与迁移相关的业务停机时间要求非常重要。 是迁移到虚拟机中的 SQL Server 还是迁移到 Azure SQL 数据库。

选择迁移数据库的方法通常取决于 SQL Server 数据库可以脱机多长时间。 影响你决定的另一个因素可能是你要自动化多少过程,而不是手动进行迁移。 基于停机时间,迁移可分为三种类型:

  • 零停机时间迁移
  • 小型维护时段迁移
  • 大型维护时段迁移

零停机时间迁移

任务关键型工作负载通常要求迁移时不停机。 你可以使用 Always On 可用性组将数据从 SQL Server 数据库复制到 Azure 虚拟机上的 SQL Server。

小型维护时段迁移

小型维护时段通常以分钟为单位。 使用 Azure 数据库迁移服务将数据从本地 SQL Server 数据库复制和迁移到 Azure 虚拟机上运行的 SQL Server。

注意

若要迁移整个应用程序,请考虑使用 Azure Site Recovery

大型维护时段迁移

大型维护时段通常以小时或天为单位,适用于不经常更改的应用程序数据库,或者工作负载对业务不重要的应用程序数据库。 你可以使用 SQL Server Management Studio BACPAC 导出和导入文件、使用备份和还原方法,或者拆离然后附加数据库,有多种方案供你选择。