迁移 SQL Server 工作负载 (FAQ)
适用于:SQL Server Azure 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 VM 实现免费的被动 HA 和 DR 次要副本。
将现有 SQL Server 工作负载迁移到 Azure 时,节省成本的最佳许可路径是什么?
Azure 混合权益 (AHB) 是 Azure 独有的一项许可权益,允许将现有的 Windows Server 和 SQL Server 许可证与软件保障 (SA) 一起引入 Azure。 与预留带来的成本节省和扩展安全更新相结合,AHB 可实现高达 55% 的成本节省(与 Azure SQL 中的预付费定价相比)。
应用程序和 SQL 现代化方案
方案 1:数据中心迁移到云:应用程序和 SQL Server 数据库的现代化路径是什么?
可以通过使用完全托管的应用程序和数据服务(包括 Azure 应用服务、Azure Spring Apps、Azure SQL 数据库、Azure SQL 托管实例和其他 PaaS 服务)将组织的现有应用更新为云优先模型。 Azure Kubernetes 服务 (AKS) 在 Azure 中提供了一种基于容器的托管方法。 Azure 中的应用程序和数据现代化是通过几个阶段实现的,最常见的场景示例在云采用框架中进行了描述。
方案 2:降低 SQL Server 成本:如何降低现有 SQL Server 队列的成本?
迁移到 Azure SQL VM、SQL 托管实例或 SQL 数据库可以节省资源、维护和房地产成本。 通过 Azure 混合权益在 Azure 中使用 SQL Server 本地许可证,以及使用支持受约束 vCPU 的虚拟机,可提供各种选项来构建经济高效的解决方案。
若要在 Azure SQL 中实施 BCDR 解决方案,可以从 SQL 托管实例和 SQL 数据库的内置 HA 副本或使用 SQL VM 的免费被动 HA 和 DR 次要副本中受益。 此外,业务关键(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 副本的费用。
我是否必须为 Azure SQL VM 的 HA 和 DR 副本付费?
如果有软件保障,则可以在 Azure SQL VM 上使用 SQL Server 实现高可用性 (HA) 和灾难恢复 (DR) 计划,且不会因被动灾难恢复实例产生额外的许可费用。 有关详细信息,请参阅 SQL VM 文档。
是否需要在 SQL 托管实例和 SQL 数据库中为灾难恢复 (DR) 付费?
SQL 托管实例让你能够配置免许可备用副本,这意味着辅助备用副本使用的 vCore 不会收取 SQL Server 许可费用。
我可以跨整个 Azure 订阅集中管理 SQL Server 的 Azure 混合权益吗?
是的。 可以在整个 Azure 订阅或整个计费帐户的范围内集中管理 SQL Server 的 Azure 混合权益。 此功能目前以预览版提供。
如果我将一些 SQL Server 和我的工作负载移动到 SQL 托管实例并将一些工作负载留在本地,我可以在一个位置管理我的所有 SQL 许可证吗?
可以在整个 Azure 订阅或整个计费帐户的范围内集中管理许可证,这些许可证包含在 SQL Server 的 Azure 混合权益中。 这些数据可以与许可合作伙伴/采购部门维护的概述相结合,或者通过创建你自己的自定义许可概述来获取许可信息。 许可证必须在本地或云中使用,但在迁移服务器时可拥有 180 天的并发使用权。
如何最小化联机迁移过程中的停机时间?
SQL 托管实例链接功能提供了停机时间最短的最佳联机迁移解决方案,满足最关键的第 1 层应用程序的需求。
采用混合策略的无风险迁移
我能否在实现 Azure 中应用程序现代化的同时继续在本地运行?
对于 SQL Server 2016、2019 和 2022,可以使用 Azure SQL 托管实例的链接功能在 SQL Server 和 Azure SQL 托管实例之间创建混合连接。 数据从 SQL Server 准实时复制到 Azure,并可用于实现 Azure 中工作负载的现代化。 可以使用 Azure 中的复制数据进行读取扩展和卸载分析。
使用 Azure SQL 托管实例的链接功能的混合解决方案可以运行多长时间?
可以根据需要持续运行混合链接:一次数周、数月、数年,对此没有任何限制。
在迁移到 Azure 之前,我可以应用混合方法并使用 Azure SQL 托管实例的链接功能来验证我的迁移策略吗?
是的,在迁移到 Azure 之前,可以使用 Azure 中的复制数据来测试和验证迁移策略(性能、工作负载和应用程序)。
如果需要,我是否可以反向迁移出 Azure SQL 并返回到 SQL Server?
借助 SQL Server 2022,我们提供了最佳解决方案,通过本机备份将数据无缝移回并从 SQL 托管实例还原到 SQL Server,从而完全降低迁移到 Azure 的策略风险。
工作负载和体系结构
如何确定应将哪些 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 托管实例?
可以使用 PowerShell 和 CLI 完成 Azure SQL 的基础结构部署自动化。 可在 Azure SQL 数据库和 Azure SQL 托管实例的 Azure PowerShell 示例一文中找到有用的示例。 可以使用 Azure DevOps 持续集成 (CI) 和部署 (CD) 管道在基础结构即代码实践中完全嵌入自动化。
构建数据库模型和脚本也可以通过数据库项目与 Visual Studio Code 或 Visual 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 合作伙伴帐户团队,他们可以就迁移团队所需的技能集和整体流程提供指导。
如何最小化联机迁移过程中的停机时间?
SQL 托管实例链接功能提供了停机时间最短的最佳联机迁移解决方案,满足最关键的第 1 层应用程序的需求。