迁移 SQL Server 工作负载 (FAQ)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure VM 上的 SQL Server

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

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

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

Azure SQL

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

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

什么是 Azure SQL?

Azure SQL 是一系列使用 Azure 云中的 SQL Server 数据库引擎的服务。 以下服务属于 Azure SQL:Azure SQL 数据库(SQL 数据库)、Azure SQL 托管实例(SQL 托管实例)和 Azure VM 上的 SQL Server (SQL VM)。

迁移到 Azure SQL 和 Azure SQL 现代化有什么区别?

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

Azure SQL 现代化涉及更新现有应用程序,以获取更新的计算方法和应用程序框架并使用云原生技术。 这可以通过使用 Azure SQL 数据库和 Azure SQL 托管实例等 PaaS 服务来实现,这些服务提供了应用创新、敏捷性、开发人员速度和成本优化的额外好处。

IaaS 和 PaaS 的含义是什么?

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

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

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

如何决定是否应将我的 SQL Server 移动到虚拟机、SQL 托管实例或 SQL 数据库?

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

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

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

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

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

例如,SQL 托管实例和 SQL 数据库(单一数据库和弹性池)随附内置 HA。 此外,业务关键(SQL 托管实例)和高级(SQL 数据库)层提供只读副本,无需额外费用,而 SQL 数据库超大规模层允许 HA 和命名的次要副本用于读取扩展,无需许可证费用。 此外,软件保障客户可以通过应用 Azure 混合权益 (AHB) 在 Azure 上使用其本地 SQL Server 许可证。

将现有 SQL Server 工作负载迁移到 Azure 时,节省成本的最佳许可路径是什么?

Azure 混合权益 (AHB) 是 Azure 独有的一项许可权益,允许将现有的 Windows Server 和 SQL Server 许可证与软件保障 (SA) 一起引入 Azure。 与预留带来的成本节省和扩展安全更新相结合,AHB 可实现高达 55% 的成本节省(与 Azure SQL 中的预付费定价相比)。

应用程序和 SQL 现代化方案

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

可以通过使用完全托管的应用程序和数据服务(包括 Azure 应用服务Azure Spring AppsAzure SQL 数据库Azure SQL 托管实例和其他 PaaS 服务)将组织的现有应用更新为云优先模型。 Azure Kubernetes 服务 (AKS) 在 Azure 中提供了一种基于容器的托管方法。 Azure 中的应用程序和数据现代化是通过几个阶段实现的,最常见的场景示例云采用框架中进行了描述。

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

迁移到 Azure SQL VM、SQL 托管实例或 SQL 数据库可以节省资源、维护和房地产成本。 通过 Azure 混合权益在 Azure 中使用 SQL Server 本地许可证,以及使用支持受约束 vCPU 的虚拟机,可提供各种选项来构建经济高效的解决方案。

此外,业务关键(SQL 托管实例)和高级(SQL 数据库)层提供只读副本,无需额外费用,而 SQL 数据库超大规模层允许 HA 和命名的次要副本用于读取扩展,无需许可证费用。

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

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

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

一旦 SQL Server 支持阶段已结束,便需要选择针对 Azure SQL 的现代化选项。 其中一个选项是将工作负载迁移到 Azure SQL 托管实例,该实例提供与本地 SQL Server 产品的高功能奇偶一致性。 或者,通过一些额外的努力,可以将工作负载移动到 Azure SQL 数据库。 这些服务在 SQL Server 经久不衰的功能上运行,有效地授予你“终止支持”。

通过兼容性级别数据库兼容性级别设置提供后向兼容性。 数据迁移助手等工具可帮助你识别可能的不兼容性。

每当平台即服务 (PaaS) 解决方案不适合你的工作负载时,Azure SQL 虚拟机都会提供按原样迁移的机会。 通过迁移到 Azure SQL VM,还可获得免费的扩展安全修补程序,这可以显着节省成本(例如,对于 SQL Server 2012,高达 69%)。

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

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

入门,整体方法

如何准备迁移业务案例?

适用于 Azure 的 Microsoft 云采用框架是一个很好的入手点,可帮助你创建和实施迁移到 Azure 所需的业务和技术战略。

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

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

能否将 SQL Server 现代化为 SQL 托管实例,然后将应用程序直接迁移到 VM?

是的。 可以通过不同的方案(包括将应用程序托管在 VM 上)来将应用程序连接到 Azure SQL 托管实例

业务和技术评估

总拥有成本、许可和权益

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

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

SQL 托管实例的许可模型是什么?

SQL 托管实例许可遵循基于 vCore 的许可模型,需要为计算、存储和备份存储资源付费。 可以在多个服务层级(常规用途、业务关键)和硬件代系之间进行选择。 SQL 托管实例定价页面全面概述了可能的 SKU 和价格。

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

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

迁移到 Azure SQL 时能否使用本地 SQL Server 许可证?

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

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

可以,合格的订阅许可证可用于通过应用 Azure 混合权益 (AHB) 以较低的(基本)费率支付 Azure SQL 服务。

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

具有适当许可证移动权限的 SQL Server CAL 许可证可用于 Azure SQL VM 和 Azure SQL 专用主机。

什么是 Azure 混合权益 (AHB)?

Azure 混合权益 (AHB) 是 Azure 独有的一项许可权益,允许将现有的 Windows Server 和 SQL Server 许可证与软件保障 (SA) 一起引入 Azure。 与预留带来的成本节省和扩展安全更新相结合时,AHB 可实现高达 55% 的成本节省(与 Azure SQL 中的预付费定价相比)。

如何将我的 SQL Server 本地许可证转换为 SQL 托管实例、SQL 数据库和 SQL VM 中的 vCore 许可证?

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

Azure 混合权益 2020 年 8 月更新概述了 SQL 托管实例、SQL 数据库和 SQL VM 可能的核心到 vCore 转换。 产品条款中还介绍了适用的 AHB 权限。

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

软件保障是一种许可计划,可应用于本地 SQL Server 许可证,从而实现许可移动性、AHB 和其他优势。 如果要在迁移到 Azure SQL 时调用 AHB 以使用现有 SQL Server 许可证(带有 SA),则需要 SA。 如果没有 SA + AHB,客户将按预付费定价付费。

此外,适用于 2019 年 10 月 1 日之前获得的 SQL Server 授予许可的外包软件管理条款允许你将现有授予许可分配给 Azure 专用主机,就像为自己的数据中心的服务器分配授予许可一样:请参阅定价 – 专用主机虚拟机

是否需要在 SQL 托管实例和 SQL 数据库中为高可用性 (HA) 付费?

SQL 托管实例和 SQL 数据库的常规用途层和业务关键层均建立在固有的高可用性体系结构之上。 这样一来,HA 就不用额外收费了。 对于 SQL 数据库超大规模层,将收取 HA 副本的费用。

工作负载和体系结构

如何确定应将哪些 SQL Server 工作负载移至 SQL 托管实例?

将 SQL Server 工作负载迁移到 Azure SQL 托管实例通常是第一选择,因为大多数数据库都准备好“按原样”迁移到 SQL 托管实例。 有几个工具可帮助你评估工作负载与 Azure SQL 托管实例的兼容性。

你可以使用数据迁移助手。 它有助于检测可能影响 Azure SQL 托管实例迁移的问题,并提供有关如何解决这些问题的指导。 验证兼容性后,可以运行 SKU 建议工具来分析性能数据并推荐最小的 Azure SQL 托管实例 SKU。 请务必访问 Azure Migrate,它是一个集中式中心,用于评估本地服务器、基础结构、应用程序和数据并将其迁移到 Azure。

如何确定特定 SQL Server 本地工作负载的适当 SQL 托管实例目标:SQL 托管实例常规用途层或业务关键层?

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

如何将高度自动化的 SQL Server 迁移到 SQL 托管实例?

可以使用 PowerShellCLI 完成 Azure SQL 的基础结构部署自动化。 可在 Azure SQL 数据库和 Azure SQL 托管实例的 Azure PowerShell 示例一文中找到有用的示例。 可以使用 Azure DevOps 持续集成 (CI) 和部署 (CD) 管道在基础结构即代码实践中完全嵌入自动化。

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

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

可以仅将与一个工作负载相关的数据库迁移到 Azure SQL 托管实例。 创建和操作 Azure SQL 托管实例需要 SQL Server 许可证。 通过 Azure 混合权益让你可以重复使用许可证。 与许可合作伙伴联系,了解许可移动性可以使用哪些机会并重组当前的许可证。

我维护一个高度整合的 SQL Server,有多个应用程序在上面运行。 是否可以将其迁移到 SQL 托管实例?

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

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

最省力的迁移路径是按原样移动并在 Azure VM 上托管商业智能组件。 Reporting Services 数据库可以托管在 Azure SQL 托管实例上,并且 Azure 数据工厂提供将 SSIS 解决方案直接迁移到云的功能。 当构建新式解决方案是迁移工作的一部分时,Azure 提供了多种服务来构建企业数据仓库解决方案。

我使用的是来自不支持 SQL 托管实例/Azure 的 ISV 的应用程序。 将我的应用程序移至 Azure 并将 SQL Server 移至 Azure SQL 有哪些选项?

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

如何在 SQL 托管实例中保持当前 SQL Server 数据库版本的兼容性?

可以在 SQL 托管实例中设置数据库兼容性级别,如 Azure SQL 博客中所述。

安全性

Azure SQL 如何帮助增强数据库安全态势?

安全策略遵循分层纵深防御方法:网络安全 + 访问管理 + 威胁防护 + 信息保护。 你可以详细了解 SQL 数据库和 SQL 托管实例安全功能。 Azure 范围的 Microsoft Defender for Cloud 为云安全态势管理 (CSPM) 和云工作负载保护 (CWP) 提供了解决方案。

业务连续性

如何将本地业务连续性和灾难恢复 (BCDR) 概念融入 Azure SQL 托管实例概念?

大多数 Azure SQL BCDR 概念在本地 SQL Server 实现中都有等效概念。 例如,SQL 托管实例常规用途层固有的高可用性可以被视为 SQL Server FCI(故障转移群集实例)的云等效项。 同样,SQL 托管实例业务关键层可以被视为具有同步提交到最少副本数的 Always On 可用性组的云等效项。 作为一种灾难恢复概念,SQL 托管实例上的故障转移组可与具有异步提交的可用性组相媲美。 SQL 数据库和 SQL 托管实例 HA 由服务级别协议提供支持。 有关详细信息,请参阅使用 Azure SQL 数据库确保业务连续性的相关概述

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

可以查看 SQL 托管实例SQL 数据库中的自动备份文档,了解 RPO、RTO、保留、计划和其他备份功能和特性。

如何在 SQL 托管实例和 SQL 数据库中实现高可用性 (HA)?

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

灾难恢复在 SQL 托管实例和 SQL 数据库中的工作原理是什么?

请参阅 SQL 数据库和 SQL 托管实例文档。 SQL 托管实例常见问题解答提供了有关 DR 选项的信息。

性能和规模

如何通过将本地 SQL Server 迁移到 SQL 托管实例、SQL 数据库或 SQL VM 来获得更好的性能?

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

如何将 SQL 托管实例性能与 SQL Server 性能进行比较?

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

迁移和现代化过程

我想将 SQL Server 工作负载现代化到 Azure SQL。 下一步该怎么做?

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