本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
迁移 SQL Server
在您的云之旅中,您可以通过多种选项将 SQL Server 环境迁移到 AWS。成功的迁移基于生成 SQL Server 工作负载及其依赖项的详细清单、确定身份验证方案、捕获高可用性和灾难恢复(HADR)要求、评测性能目标以及评估许可选项。此清单可帮助您确定目标数据库平台并定义迁移选项。
将 SQL Server 工作负载迁移到 SQL Server 工作负载时 AWS,您需要考虑许多选项,每种选择都能实现优化 price/performance、更直观的用户体验和更低的总体拥有成本。您可以选择在以下项目中部署 SQL Server:Amazon EC2、Amazon RDS for SQL Server 或 Amazon RDS Custom for SQL Server
评测
要成功实施迁移,评估现有基础设施并了解您的环境所需的关键功能是非常重要的。我们建议您在选择迁移计划之前先查看以下关键领域:
-
查看现有基础架构-使用在迁移发现阶段收集的数据,查看现有的 SQL Server 基础架构。您可以使用AWS 迁移评估器
自动收集有关服务器配置、SQL Server 部署、资源利用率和应用程序依赖关系的详细信息。对于 VMware-based 环境,该AWS Transform 发现工具无需云连接即可提供无需代理的本地发现。其产出直接用于总体拥有 AWS Transform 成本分析和业务案例生成的评估。我们建议你在上使用微软为SQL Server基础架构规定的规模 AWS。了解本地 SQL Server 实例的当前利用率(包括内存、CPU、IOPS 和吞吐量)对于正确调整您的 SQL Server 实例的大小非常重要。 AWS -
查看现有许可 — 您可以利用补充的AWS 优化和许可评估 (AWS OLA)
来制定迁移和许可策略 AWS。 AWS OLA 为您提供一份报告,该报告使用现有许可授权对您的部署选项进行建模。这些结果可以帮助您探索灵活的 AWS 许可选项中可实现的成本节约。如果您已经在上运行 SQL Server 工作负载 AWS,则会AWS Compute Optimizer提供自动许可建议,包括根据实际功能使用情况确定降级 SQL Server 版本的机会。 -
查看现有的 SQL Server 架构 — 如果您使用的是带有共享存储的 SQL Server 故障转移群集或 SQL Server Always On 可用性组架构,那么了解您当前的高可用性架构要求将有助于您定义 SQL Server 部署选项 AWS。
SQL Server Always On 可用性组支持同步和异步提交模式,您可以使用它们实现单个 AWS 区域 (跨可用区)的高可用性或跨区域的灾难恢复。SQL Server 始终开启故障转移集群实例 (FCI) 需要共享存储,这可以通过使用适用于 Windows 文件服务器的 Amazon FSx 或适用于 ONTAP 的 Amazon FSx 来提供。 NetApp 有关高可用性和灾难恢复选项的完整比较,请参阅 “ AWS 规范性指南” 中的 “选择高可用性和灾难恢复解决方案”。
-
制定备份策略 — 对于 Amazon RDS for SQL Server,您可以将自动备份与时间点恢复、手动快照以及本机备份和还原配合使用。对于亚马逊 EC2 上的 SQL Server,您可以使用原生 SQL Server 备份和恢复、使用快照方法,或者将数据库备份到亚马逊 EBS、适用于 Windows 文件服务器的 Amazon FSx、适用于 ONTAP 的亚马逊 FSx 或亚马逊 S NetApp 3。您可以使用AWS Backup在 Amazon RDS for SQL Server 和亚马逊 EC2 上的 SQL Server 上协调和集中备份。
亚马逊 EC2 上的 SQL Server 2022 以及适用于 NetApp ONTAP 的 Amazon FSx 支持T-SQL 快照备份
,以实现近乎即时、一致的备份,对主主机的影响最小。SQL Server 2025 通过在 Always On 可用性组中启用从辅助副本进行本机数据库备份,进一步扩展了这一范围。有关更多信息,请参阅 Microsoft SQL Server 2025 的新增 AWS 功能(AWS 博客文章)。 有关备份策略的更多信息,请参阅 Amazon RDS for SQL Server 的备份和还原策略
(AWS 博客文章)和亚马逊 EC2 上的 SQL Server 的备份和还原选项(AWS 规范性指南)。 -
了解灾难恢复 (DR) 需求 — 对于 Amazon RDS for SQL Server,跨区域自动备份和只读副本无需配置 SQL Server-level 复制即可提供托管灾难恢复选项。
对于 Amazon EC2 上的 SQL Server,您可以使用通过AWS Transit Gateway或 AWS 区域 连接的辅助服务器 AWS Direct Connect,这样就可以进行复制。灾难恢复选项包括用于多区域部署的 SQL Server 分布式可用性组、用于在几分钟内实现 RTO 和 RPO 的经济实惠选项的日志传输,以及作为灾难恢复实施AWS 弹性灾难恢复的连续块级复制。 active/passive 有关更多信息,请参阅 “ AWS 规范性指南” 中的 “选择高可用性和灾难恢复解决方案” 和 “ AWS 数据库博客 AWS:第 1 部分” 上的 “为 SQL Server 设计灾难恢复
”。
动员
对于您的 SQL Server 工作负载,我们建议您考虑以下几种 SQL Server 数据库迁移策略:
-
重新托管(直接迁移):这涉及到将本地 SQL Server 数据库迁移到 AWS Cloud中 Amazon EC2 实例上的 SQL Server。如果您的首要任务是更快地迁移到, AWS 则此方法非常有用。您可以使用自带许可证 (BYOL) 模式携带现有 SQL Server 许可证,也可以从中购买包含许可证 (LI) 的实例。 AWS您还可以使用 AWS Launch Wizard SQL Server 来指导您在 Amazon EC2 上完成 SQL Server 的大小、配置和部署。它支持单实例部署和高可用性部署。
-
平台重组(提升和重塑)— 这涉及将您的本地 SQL Server 数据库迁移到上的托管数据库服务。 AWS这种方法可以卸载无差别的任务,例如安装、配置、修补、升级和高可用性设置。在两个托管选项之间进行选择:
-
Amazon RDS for SQL Server
— 这是一个完全托管的选项,当您想要卸载所有数据库基础设施管理时,这是最佳选择。 -
适用于 SQL Server 的 Amazon RDS 定制 — 这是一项托管服务,保留了操作系统和数据库级访问权限。此选项非常适合具有自定义部署要求的传统应用程序或打包应用程序。Amazon RDS Custom 支持自带媒体 (BYOM) 选项,这使您能够根据微软的许可移动性条款使用现有 SQL Server 许可。
有关亚马逊 EC2 上的 SQL Server、Amazon RDS 和 Amazon RDS Custom 的功能比较,请参阅 AWS 规范性指南中的亚马逊 EC2 和亚马逊 RDS 之间的选择。
-
-
重构(重新架构)— 这通常涉及通过使用开源数据库或专为云构建的数据库来更改应用程序和实现现代化。通过摆脱 SQL Server,您可以降低许可成本,避免供应商锁定和许可审计。您可以对 SQL Server 数据库进行现代化改造,以便:
-
适用于 MySQL 的亚马逊 R DS 或适用于 PostgreSQL 的亚马逊 RDS — 完全托管的开源数据库产品。
-
Amazon Aurora — 一种云原生关系数据库,完全兼容 MySQL 和 PostgreSQL,以低廉的成本提供商用级数据库的性能和可用性。
-
适用于 Aurora PostgreSQL 的 Babelfish — 使最初为 SQL S erver 编写的应用程序只需最少的代码更改即可与 Aurora PostgreSQL 配合使用,从而加快迁移速度并降低重构风险。
要转换您的 SQL Server 架构和代码,您可以使用AWS DMS 架构转换,这是 AWS Database Migration Service (AWS DMS) 的一项完全托管的架构转换功能。
-
迁移
在将 SQL Server 工作负载迁移到时 AWS,以下各节描述了每种迁移策略的可用工具和方法。
重新托管
重新托管是一种同构迁移方法。如果您想在不更改数据库软件或配置的情况下按原样迁移 SQL Server 数据库,请选择此选项。这是以速度为首的大规模遗留迁移的常见选择。
使用 Amazon EC2 迁移 SQL Server
如果您迁移到 Amazon EC2,则可以使用 BYOL 模式使用现有的 SQL Server 许可证,也可以从中 AWS购买 LI 实例。 AWS License Manager在 Amazon EC2 上部署 SQL Server 时,可帮助您控制可用许可证的分配,并帮助您遵守许可规则。
对于 BYOL 方法,只有拥有微软软件
您可以使用 SQL Server 功能将 SQL Server 数据库迁移到 Amazon EC2 实例,或者 AWS 服务。如果您要将单个数据库或一组数据库迁移到 Amazon EC2 上的新 SQL Server 实例,则这些选项是合适的。除了数据库迁移之外,您可能还需要迁移诸如登录名、作业、数据库邮件和链接服务器之类的对象。
以下方法可用于在上 AWS重新托管 SQL Server 数据库:
你也可以使用 AWS Launch Wizard SQL Server 来指导你在支持单实例和高可用性部署的 Amazon EC2 上完成 Microsoft SQL Server 的大小、配置和部署。
使用迁移 SQL 服务器 AWS Application Migration Service
AWS Application Migration Service
Linux 上的 SQL Server
SQL Server 数据库引擎在 Windows 服务器和 Linux 上的运行方式类似。但是,在使用 Linux 时,某些任务会发生一些变化。 AWS Launch Wizard可以帮助您适应这些变化并配置高度可用的解决方案。如果您拥有内部 Linux 管理专业知识,则更换主机到 Amazon EC2 Linux 是节省 Windows Server 许可成本的好选择。从 SQL Server 2017 开始,Linux 上的 SQL Server 受到支持。有关更多信息,请参阅根据 AWS 规范性指南将本地微软 SQL Server 数据库迁移到运行 Linux 的亚马逊 EC2 上的微软 SQL Server。
更换平台
更换平台是一种同构方法,最适合通过使用完全托管的数据库产品来缩短管理数据库实例所花费的时间。Amazon RDS for SQL Server 中的完全托管数据库会限制您访问底层操作系统、系统卷或安装自定义驱动程序。有关更多信息,请参阅适用于微软 SQL Server 的亚马逊 RDS for Microsoft SQL Server 如果需要 OS-level 访问权限或现有的 SQL Server 许可证,请考虑将平台改为适用于 SQL Server 的 A mazon RDS Custom
适用于 SQL Server 的 Amazon RDS Custom 支持 BYOM 许可模式,该模式允许您使用自己的安装媒体和许可。你的许可证必须符合 Microsoft 许可证移动性
以下选项可用于将 SQL Server 迁移到适用于 SQL Server 的亚马逊 RDS 或适用于 SQL Server 的 Amazon RDS 定制:
-
自定义日志传送 — 需要适用于 SQL Server 的 Amazon RDS 和亚马逊 RDS 自定义脚本。有关参考实现,请参阅 AWS 数据库博客上的使用自定义日志传送将本地或 Amazon EC2 SQL Server 自动迁移到 Amazon RDS
for SQL Server。 -
SQL Server 备份和还原 — 有关适用于 SQL Server 的 Amazon RDS 的备份和恢复,请参阅使用本机备份和还原将 SQL Server 迁移到 Amazon RDS
。有关 Amazon RDS 自定义,请参阅使用本机备份和还原以及 Amazon S3 将本地 SQL Server 迁移到适用于 SQL Server 的 Amazon RDS 定制 版。
有关更多信息,请参阅《 AWS 说明指南》中的 SQL Server 迁移方法。
要为您的 SQL Server 数据库更换平台以便在 Amazon RDS for SQL Server 上运行,请考虑使用 Amazon RDS for SQL Server 资源
重构
重构是异构的。如果您已准备好重组、重写和重新架构数据库和应用程序,以利用开源和专为云构建的数据库产品,请选择这种方法。如果您愿意重构数据库和相应的应用程序,则可以将 SQL Server 工作负载现代化为适用于 MySQL 的亚马逊 RDS、适用于 PostgreSQL 的亚马逊 RDS、亚马逊 Aurora 版或 MySQL-Compatible PostgreSQL-Compatible 亚马逊 Aurora 版。您可以根据许多现代化时间表和性能要求进行重构。
Amazon RDS for MySQL 和 Amazon RDS for PostgreSQL 是适用于其各自开源数据库的完全托管数据库产品。Amazon Aurora 是一个关系数据库管理系统 (RDBMS),专为云而构建,完全兼容 MySQL 和 PostgreSQL。Aurora 具有容错存储系统,可为您提供商业级数据库的性能和可用性,但成本仅为商业级数据库的十分之一。
您也可以使用 Amazon Aurora Serverless
要将您的 SQL Server 数据库重构为这些产品之一,请考虑使用以下方法之一:
-
AWS Transform f@@ or SQL Server 现代化可自动将 SQL Server 数据库及其关联的.NET 应用程序的全栈现代化改造为 Amazon Aurora PostgreSQL。它协调整个迁移过程,包括架构转换、存储过程转换(T-SQL 到 PL/pgSQL)、数据迁移和应用程序代码更新(实体框架 ADO.NET、连接字符串)。 AWS DMS它还在关键阶段提供人性化检查点。有关支持的 SQL Server 版本、源和目标的更多信息,请参阅 AWS Transform 文档中的支持的版本和项目类型。
-
要进行仅限架构的转换或迁移到适用于 MySQL 的 Amazon RDS、适用于 PostgreSQL 的亚马逊 RDS 或其他 Aurora 目标,请考虑使用架构转换。AWS DMS
-
如果您的目标是加快将应用程序和数据库迁移到 Aurora PostgreSQL AWS,请考虑使用 Babelfish for Aurora PostgreSQ L。Babelfish 使最初为 SQL Server 编写的应用程序只需最少的代码更改即可与 Amazon Aurora 配合使用。因此,修改和迁移到为 SQL Server 2019 或更早版本开发的适用于 Aurora PostgreSQL 的 Babelfish 应用程序所需的工作量减少了,从而可实现更快、风险更低且更具成本效益的重构。
使用 Babelfish 进行迁移时,请考虑以下资源:
-
使用 AWS SCT 评估报告为 Babelfish 迁移做好准备
(AWS 数据库博客) -
使用 SSIS 和 Babelfish 从 SQL Server 迁移到 Aurora PostgreSQL(
数据库博客)AWS -
Using Babelfish as a target for AWS Database Migration Service(AWS Database Migration Service 文档)
有关更多信息,请参阅《 AWS 规范性指南》中的异构数据库迁移工具。
其他资源
-
将微软 SQL Server 数据库迁移到 AWS Cloud(AWS 规范性指南)
-
AWS(AWS 博客)上@@ 的 SQL Server 工作负载的迁移和现代化策略
-
SQL Server 数据库迁移方法(AWS 规范性指南)