迁移SQL Server工作负荷(常见问题解答)

适用于:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure VM 上的 SQL Server

将本地SQL Server工作负载和关联的应用程序迁移到云通常会带来一系列问题,这些问题不仅仅是产品功能信息。

本文提供整体视图,有助于了解如何在迁移到Azure SQL时完全解锁该值。 Modernize 应用程序和 SQL部分介绍了有关 Azure SQL 的常见问题及应用程序和 SQL 现代化场景。 业务和技术评估部分涵盖成本节省、许可、最小化迁移风险、业务连续性、安全性、工作负载和体系结构、性能以及类似的业务和技术评估问题。 最后一部分介绍了实际的迁移和现代化过程,包括有关迁移工具的指南。

实现应用程序和 SQL 的现代化

Azure SQL

将应用程序和SQL Server工作负荷移动到Azure有什么好处?

迁移至 Azure带来了优化的成本、灵活性和可伸缩性、增强的安全性、合规性、改进业务连续性以及简化管理和监视。

什么是Azure SQL?

Azure SQL是一系列服务,使用 Azure Cloud 中的SQL Server数据库引擎。 以下服务属于 Azure SQL:Azure SQL Database (SQL 数据库)、Azure SQL Managed Instance (SQL Managed Instance) 和 SQL Server AzureVM (SQL VM)。

迁移和现代化与Azure SQL有何区别?

迁移到Azure SQL涉及将应用程序、基础设施和数据从一个位置(例如,公司的本地数据中心)迁移到Azure基础设施。 对于SQL Server客户,这意味着迁移工作负载,同时尽量减少对作的影响。 可以降低 IT 成本、增强安全性和复原能力,并实现按需缩放。

Azure SQL 的Modernization 涉及更新现有应用程序,以便更新较新的计算方法和应用程序框架以及使用云原生技术。 这可以通过使用 PaaS 服务(如Azure SQL Database和Azure SQL Managed Instance)来实现,这为应用创新、敏捷性、开发人员速度和成本优化提供了额外的优势。

IaaS 和 PaaS 的含义是什么?

基础结构即服务 (IaaS) 是一种云计算服务,它按需提供必要的计算、存储和网络资源。

平台即服务 (PaaS) 是云中的完整开发和部署环境,其资源使你能够提供从简单的基于云的应用到复杂的支持云的企业应用程序的所有内容。

与 IaaS 相比,PaaS 提供了其他优势,例如更短的开发周期、无需增加人员的额外开发能力、对复杂工具的经济实惠的访问权限等等。 Azure SQL提供 PaaS(SQL Managed Instance、SQL 数据库)和 IaaS(SQL VM)服务。

如何确定是否应将SQL Server移动到虚拟机、SQL Managed Instance或 SQL 数据库?

  • SQL Managed Instance是正确的 PaaS 目标,旨在大规模实现现有SQL Server应用程序的现代化,同时提供几乎所有SQL Server功能(包括实例级功能),同时降低服务器和数据库管理的成本。

  • SQL 数据库是构建本机云应用程序时最合适的选择,因为它提供了在体系结构层和计算层之间选择的高弹性和灵活性,例如用于提高弹性的无服务器层和用于高度可缩放的存储和计算资源的超大规模服务层级

  • 如果需要完全控制和自定义(包括 OS 访问权限),可以选择在 Azure VM 上选择 SQL Server服务比较提供了更多详细信息。

如何通过迁移到Azure SQL来降低成本?

迁移到Azure除了能够优化工作负荷之外,还可以节省资源、维护和房地产成本,从而降低运行成本。 Azure SQL Managed Instance和 SQL 数据库带来了 PaaS 服务的所有优势,提供自动化的性能优化、备份、软件修补和高可用性,所有这些都在手动执行时需要付出巨大的工作量和成本。

例如,SQL Managed Instance和 SQL 数据库(单一数据库和弹性池)附带内置 HA。 此外,业务关键层(SQL 托管实例)和高级(SQL 数据库)层提供只读副本,无需额外付费,而 SQL 数据库超大规模层允许 HA 和命名辅助副本,以实现读取横向扩展性,并且不收取许可证费用。 此外,Software Assurance客户可以通过应用 Azure Hybrid Benefit 在 Azure 上分配其SQL Server许可证。 软件保障还允许使用 SQL VM 实现免费的被动 HA 和 DR 次要副本

将现有SQL Server工作负载移动到Azure时,最佳许可路径可以节省成本?

Azure独特的特性是Azure Hybrid Benefit,这是一项许可权益,让你能够将现有的Windows Server和具有软件保障(SA)的SQL Server许可证迁移到Azure。 与预留节省和扩展安全更新相结合,Azure Hybrid Benefit与 Azure SQL 中的即用即付定价相比,最多可以节省 30%。

应用程序和 SQL 现代化方案

方案 1:数据中心迁移到云:应用程序和SQL Server数据库的现代化路径是什么?

可以使用完全托管的应用程序和数据服务(包括 Azure App ServiceAzure Spring AppsAzure SQL DatabaseAzure SQL Managed Instance 和其他 PaaS 服务。 Azure Kubernetes 服务(AKS)在 Azure 中提供基于容器的托管方法。 Azure中的应用和数据现代化通过多个阶段实现,最常见方案示例在云采纳框架中描述。

方案 2:降低SQL Server成本:如何降低现有SQL Server车队的成本?

迁移到 Azure SQL VM、SQL Managed Instance 或 SQL 数据库可节省资源、维护和房地产成本。 通过使用 Azure Hybrid Benefit 将您的SQL Server本地许可证应用于Azure,并使用具备约束vCPU能力的虚拟机,您将获得丰富的选择来构建具有成本效益的解决方案。

若要在 Azure SQL 中实现 BCDR 解决方案,可以从 SQL 托管实例和 SQL 数据库的内置高可用性 (HA) 副本或通过 SQL 虚拟机 (VM) 使用免费被动的高可用性 (HA) 和灾难恢复 (DR) 副本中获益。 此外,Business Critical 层(SQL 托管实例)和 Premium 层(SQL 数据库)提供只读副本,无需额外付费,而 SQL 数据库超大规模层允许高可用性和命名次要副本进行读扩展,不收取许可证费用。

方案 3:优化应用程序组合:如何同时实现应用程序组合和SQL Server实例的现代化?

应用和数据现代化 在 Azure 中通过几个阶段实现,云采用框架中描述了最常见的场景示例。

方案 4:SQL Server终止支持:有哪些选项可以迁移到Azure SQL?

一旦 SQL Server 到达支持终止阶段,您将拥有多个现代化选项指向 Azure SQL。 其中一个选项是将工作负荷迁移到 Azure SQL 托管实例,该实例提供与本地 SQL Server 产品的高度功能一致性。 或者,通过一些努力,可以将工作负荷移到Azure SQL Database。 这些服务运行在 SQL Server 的永久支持功能上,有效地让您获得“支持终止的终点”。

通过兼容性级别数据库兼容性级别设置提供后向兼容性。 像 SQL Server Management Studio 中的 SQL Server 迁移组件这样的工具可帮助您确定可能的不兼容情况。

每当平台即服务(PaaS)解决方案不适合工作负荷时,Azure SQL Virtual Machines提供执行 as-is 迁移的可能性。 通过迁移到 Azure SQL VM,您还可以获得免费扩展的安全修补程序,这些修补程序可提供显著的节省(例如,对 SQL Server 2012 可节省高达69%)。

方案 5:满足法规合规性:Azure SQL如何帮助满足法规合规性要求?

Azure Policy内置策略可帮助组织满足法规遵从性。 也可以创建即席和自定义策略。 有关详细信息,请参阅 适用于 Azure SQL 数据库和 SQL 托管实例的 Azure 策略法规合规性控制措施

入门的整体方法

如何准备迁移业务案例?

Microsoft Cloud Adoption Framework for Azure 是一个很好的起点,帮助你创建和实施迁移到 Azure 所需的业务和技术策略。

是否必须同时实现应用程序和 SQL 的现代化? 可以使用哪些选项?

否。 可以随意采用迭代方法来实现每个工作负载和组件的现代化。

能否将 SQL Server 现代化为 SQL Managed Instance,并将我的应用程序直接移至 VM?

是的。 可以通过不同的方案连接您的应用程序到Azure SQL托管实例,包括在虚拟机上托管时。

业务和技术评估

总拥有成本、许可证和好处

在迁移到Azure SQL时,如何估算总拥有成本(TCO)节省?

迁移到 Azure SQL通过提高运营效率和业务敏捷性,以及消除对本地硬件和软件的需求,带来了显著的 TCO 节省。 根据ESG报告《将本地SQL Server实例迁移到Azure SQL 解决方案的经济价值》,从本地迁移到Azure SQL虚拟机(IaaS)可以节省最多47%,而迁移到Azure SQL托管实例或Azure SQL数据库(PaaS)可以最多节省64%。

SQL Managed Instance的许可模型是什么?

SQL Managed Instance许可遵循基于 vCore 的许可模型,可在其中为计算、存储和备份存储资源付费。 可以在多个服务层级(常规用途、业务关键)和硬件代系之间进行选择。 SQL Managed Instance定价页提供了可能的 SKU 和价格的完整概述。

SQL 数据库的许可模型是什么?

SQL 数据库提供了 vCore 购买模型数据库事务单位购买模型供你选择。 可以浏览 Pricing - Azure SQL Database单一数据库并了解定价选项。

移动到Azure SQL时,是否可以使用本地SQL Server许可证?

如果您拥有适用于基于核心的或符合条件的 SQL Server Standard Edition 或 SQL Server Enterprise Edition 订阅许可证的软件保障,您可以通过应用 Azure 混合权益,在迁移到 SQL 托管实例、SQL 数据库或 Azure 虚拟机时使用您现有的 SQL Server 许可证。 还可以在本地和Azure环境(迁移限额)中同时使用这些许可证,最长为 180 天。

我使用的是SQL Server订阅许可证。 是否可以使用它迁移到 Azure SQL?

是的,符合条件的订阅许可证可用于通过应用Azure Hybrid Benefit以降低(基本)费率支付Azure SQL服务。

我使用的是 SQL Server CAL 许可证。 如何迁移到Azure SQL?

具有适当许可移动性权限的 SQL Server 客户端访问许可证(CAL)可以在 Azure SQL 虚拟机和 Azure SQL 专用主机上使用。

什么是Azure Hybrid Benefit?

Azure Hybrid Benefit是一种独特的Azure折扣,可让你能够将SQL Server许可证分配给Azure SQL Database和Azure SQL Managed Instance。 使用 Azure Hybrid Benefit,可以享受向SQL Server Database Engine分配SQL Server许可证的折扣。 当与预留节省和扩展安全更新相结合时,Azure Hybrid Benefit可以使您相比Azure SQL中的即用即付定价节省最多30%。 您可以使用 Pricing Calculator 计算您的 SQL Server 资源的具体节省。

如何将SQL Server本地许可证转换为 SQL Managed Instance、SQL 数据库和 SQL VM 中的 vCore 许可证?

对于 SQL Server Enterprise Edition 的每一个核心,您将获得四个 vCore 的 SQL Managed Instance 常规用途层或者一个 vCore 的 SQL Managed Instance 业务关键层。 同样,SQL Server Standard Edition 的一个 (1) 核心转换为 SQL Managed Instance 常规用途层的一个 (1) 个 vCore,而 SQL Server Standard Edition 的四个 (4) 核心转换为 SQL Managed Instance 业务关键版的一个 (1) 个 vCore。

Azure Hybrid Benefit 2020 年 8 月更新概述了Azure VM 上SQL Managed Instance、SQL 数据库和SQL Server可能的内核到 vCore 转换。 产品条款中还描述了适用的 Azure Hybrid Benefit 权利。 可以使用 Pricing Calculator 来计算您的 SQL Server 环境的确切节省。

在 Azure SQL 上使用 SQL Server 许可证是否需要软件保障 (SA) ?

Software Assurance (SA)是一项许可计划,可应用于本地SQL Server许可证,允许许可证移动性、Azure Hybrid Benefit和其他权益。 如果要在迁移到 Azure SQL 时使用包含软件保障 (SA) 的现有 SQL Server 许可证调用 Azure Hybrid Benefit,则需要具有 SA。 如果没有 SA + Azure Hybrid Benefit,客户将按即用即付定价付费。

或者,适用于在 2019 年 10 月 1 日之前获取的SQL Server许可证的外包软件管理条款允许将现有许可证分配给Azure Dedicated Host,就像在自己的数据中心许可服务器一样:请参阅 Pricing - 专用主机Virtual Machines

是否需要为 SQL Managed Instance 和 SQL 数据库中的高可用性(HA)付费?

SQL Managed Instance 和 SQL 数据库的常规用途层和业务关键层都基于固有高可用性体系结构构建。 这样一来,HA 就不用额外收费了。 对于 SQL 数据库超大规模层,将收取 HA 副本的费用。

是否需要为 Azure SQL VM 支付 HA 和 DR 副本的费用?

如果有软件保障,则可以在 Azure SQL VM 上实现具有SQL Server的高可用性(HA)和灾难恢复(DR)计划,而不会对被动灾难恢复实例产生额外的许可成本。 有关详细信息,请参阅 SQL VM 文档

是否需要为 SQL Managed Instance 和 SQL 数据库中的灾难恢复(DR)付费?

SQL Managed Instance提供了配置无许可证备用副本的可能性,这意味着不收取辅助备用副本使用的 vCore 的SQL Server许可费用。

是否可以在整个Azure订阅中集中管理SQL Server的Azure Hybrid Benefit?

是的。 您可以在整个 Azure 订阅或总体计费帐户的范围内,集中管理您的 Azure Hybrid Benefit 用于 SQL Server。 此功能目前以预览版提供。

如果我将部分 SQL Server 的工作负载迁移到 SQL Managed Instance,并将部分工作负载保留在本地,是否可以在一个地方管理所有 SQL 许可证?

你可以在整个 Azure 订阅或整体计费帐户的范围内,集中管理由 Azure Hybrid Benefit 涵盖的 SQL Server 许可证。 这些数据可以与许可合作伙伴/采购部门维护的概述相结合,或者通过创建你自己的自定义许可概述来获取许可信息。 许可证必须在本地或云中使用,但在迁移服务器时可拥有 180 天的并发使用权。

如何最小化联机迁移过程中的停机时间?

Managed Instance链接提供最低可能的停机时间联机迁移解决方案,满足关键性最高的一级应用程序的需求。

采用混合策略的无风险迁移

是否可以在本地继续运行,同时在Azure中将应用程序现代化?

使用 SQL Server 2016、2019 和 2022,可以使用 Managed Instance 链接在 SQL Server 和 Azure SQL Managed Instance 之间创建混合连接。 数据从SQL Server几乎实时复制到Azure,可用于在Azure中实现工作负荷的现代化。 可以使用 Azure 中的复制数据进行读扩展和分析卸载。

可以根据需要持续运行混合链接:一次数周、数月、数年,对此没有任何限制。

是的,可以在Azure中使用复制的数据来测试和验证迁移策略(性能、工作负载和应用程序),然后再迁移到Azure。

是否可以反向迁移Azure SQL,并在必要时返回SQL Server?

使用 SQL Server 2022,我们提供最佳的解决方案,通过本机备份和还原,从 SQL Managed Instance 无缝地将数据迁移回 SQL Server,从而彻底降低迁移到 Azure 策略的风险。

工作负载和体系结构

如何确定应将哪些SQL Server工作负荷移动到SQL Managed Instance?

将 SQL Server 负载迁移到 Azure SQL 托管实例通常是首选,因为大多数数据库都已经准备好直接迁移到 Azure SQL 托管实例。 有几个工具可用于帮助你评估工作负荷,以便与Azure SQL Managed Instance兼容。

访问 Azure Migrate,这是一个统一中心,用于评估和迁移本地服务器、基础结构、应用程序和数据到 Azure。

如何确定特定SQL Server本地工作负荷的相应SQL Managed Instance目标:SQL Managed Instance常规用途或业务关键层?

SQL Managed Instance层选择受可用性、性能(例如吞吐量、IOPS、延迟)和功能(例如内存中 OLTP)要求的指导。 常规用途层适用于大多数通用工作负载,因为它已经提供了 HA 体系结构和完全托管的数据库引擎,存储延迟在 5 毫秒到 10 毫秒之间。 业务关键层专为需要来自存储层的低延迟(1-2 毫秒)响应、快速恢复、严格的可用性要求以及卸载分析工作负载能力的应用程序而设计。

如何将高度自动化的SQL Server移动到SQL Managed Instance?

可以通过 PowerShellCLI(命令行界面)实现 Azure SQL 的基础设施部署自动化。 Azure PowerShell 示例中关于 Azure SQL DatabaseAzure SQL Managed Instance 的文章中,可以找到有用的例子。 可以使用 Azure DevOps 持续集成(CI)和部署(CD)管道在基础结构即代码实践中完全嵌入自动化。

生成数据库模型和脚本还可以通过数据库项目与 Visual Studio CodeVisual Studio 集成。 使用 Azure DevOps CI/CD 管道可以将数据库项目部署到您选择的 Azure SQL 目标中。 最后,还可以通过第三方工具实现服务自动化。 有关详细信息,请参阅 Azure SQL Managed Instance - Terraform 命令

能否仅将特定工作负载移出本地群集?这会对许可和成本产生什么影响?

只能将与一个工作负荷相关的数据库迁移到Azure SQL Managed Instance。 创建和操作 Azure SQL Managed Instance 需要 SQL Server 许可证。 Azure Hybrid Benefit提供将许可证分配给SQL Server Database Engine的功能。 与许可合作伙伴联系,评估许可移动性可以利用的可能性,并重新调整当前的许可证。

我维护了高度整合的SQL Server,其中有多个应用程序针对它运行。 是否可以将其移动到SQL Managed Instance?

与本地SQL Server类似,可以在单个SQL Managed Instance实例上合并和运行多个数据库,同时受益于固有的高可用性体系结构以及共享的安全和管理。 SQL Managed Instance还支持跨数据库查询。

如何迁移与SQL Managed Instance不兼容的SQL Server商业智能工作负载(包括 Reporting Services 和 Analysis Services) ?

最不费力的迁移路径是移动 as-is 并在Azure VM 上托管商业智能组件。 Reporting Services 数据库可以托管在 Azure SQL 托管实例 上,Azure 数据工厂提供了将 SSIS 解决方案迁移至云的功能。 构建新式解决方案是迁移工作的一部分,Azure提供了各种服务来构建 Enterprise 数据仓库解决方案。

我使用一个 ISV 的应用程序,但它不支持 SQL Managed Instance 或 Azure。 将应用程序移动到Azure和SQL Server到Azure SQL有哪些选项?

将环境 as-is 迁移到Azure虚拟机是 ISV 或供应商未提供任何选项时最安全的选项。 但是,我们鼓励与 Microsoft 密切合作的 ISV 和其他供应商审查 Azure SQL Managed Instance 的选项。 Azure SQL 托管实例通过 数据库兼容性级别 提供向后兼容选项,提供 Transact-SQL 差异指南,并在 Azure SQL 托管实例中实现了 主要功能

如何在SQL Managed Instance中保持当前SQL Server数据库版本的兼容性?

可以在SQL Managed Instance中设置数据库兼容性级别,如 Azure SQL Blog 中所述。

安全性

Azure SQL如何帮助增强数据库安全状况?

安全策略遵循分层深层防御方法:网络安全 + 访问管理 + 威胁防护 + Information Protection。 可以阅读有关 SQL 数据库和SQL Managed Instance安全功能的详细信息。 Azure范围、Microsoft Defender for Cloud为云安全状况管理(CSPM)和云工作负荷保护(CWP)提供解决方案。

业务连续性

如何将本地业务连续性和灾难恢复(BCDR)概念适应Azure SQL Managed Instance概念?

大多数Azure SQL BCDR 概念在本地SQL Server实现中具有等效性。 例如,SQL 托管实例的通用层的固有高可用性可以被视为 SQL Server FCI(故障转移群集实例)的云等效。 同样,SQL Managed Instance Business Critical 层被视为与同步提交到最小副本数量的 AlwaysOn 可用性组的云等效项。 作为灾难恢复概念,SQL Managed Instance上的 failover 组与具有异步提交的可用性组相当。 SQL 数据库和 SQL Managed Instance HA 由 Service-Level 协议提供支持。 有关更多信息,请参阅 Azure SQL Database 中的业务连续性

Azure SQL PaaS 服务中如何处理备份?

可以在 SQL Managed InstanceSQL 数据库,了解 RPO、RTO、保留、计划和其他备份功能和功能。

SQL Managed Instance和 SQL 数据库中的高可用性(HA)如何实现?

SQL Managed Instance和数据库基于固有高可用性体系结构构建。 这包括对故障转移组和各种其他功能的支持。 可以在两种 HA 体系结构模型之间进行选择:常规用途服务层中的标准可用性模型,或业务关键服务层中的高级可用性模型

灾难恢复如何在 SQL Managed Instance 和 SQL 数据库中工作?

请参阅 SQL 数据库和 SQL Managed Instance 文档。 SQL Managed Instance常见问题解答提供有关 DR 选项的信息。

性能和规模

如何将本地SQL Server移动到 SQL Managed Instance、SQL 数据库或 SQL VM,从而获得更好的性能?

从本地迁移可提供性能优势,因为最新的SQL Server数据库引擎功能、云缩放灵活性和最新一代的基础硬件。 找出SQL Server数据属于 Azure。 您还可以阅读由Principled Technologies最近发布的一项研究,该研究对Amazon Web Services(AWS)RDS上的SQL托管实例和SQL服务器进行了基准测试。 请务必确保根据 CPU、内存和 存储 (IOPS、延迟、事务日志吞吐量和大小)的要求正确调整大小。 SQL 托管实例和 SQL 数据库还提供不同的 硬件配置服务层级供选择,以使用其他方式达到预期性能。 应用程序还可以利用读取扩展功能,包括命名副本地理副本以及数据库分片等技术。

如何将SQL Managed Instance性能与SQL Server性能进行比较?

有关性能比较和优化的指导,请参阅《SQL 托管实例常见问题解答》的性能部分。

迁移和现代化过程

我想将 SQL Server 工作负载迁移至 Azure SQL,以实现现代化。 下一步该怎么做?

一个不错的选择是加入 Azure 迁移和现代化计划。 启动一个迁移项目时,一个好的做法是组建一个专门的迁移团队来制定和执行迁移计划。 如果贵公司有指定的 Microsoft 或 Microsoft 合作伙伴帐户团队,他们可以就迁移团队所需的技能集和整体流程提供指导。

如何最小化联机迁移过程中的停机时间?

SQL 托管实例链接提供最少停机时间的联机迁移解决方案,满足关键任务一级应用程序的需求。