评估 Linux 上的 SQL Server
概览
自 SQL Server 2017 开始,可以在 Linux 操作系统上安装 SQL Server。Linux 上的 SQL Server 已为企业做好准备,同时具备灵活性、高性能、安全功能、较低的 TCO、HA/DR 功能以及出色的用户体验等优势。您可以从 Windows Server 上的 SQL Server 切换到 Linux 上的 SQL Server,以节省 Windows Server 的许可费用。
对于 Linux,SQL Server 可以在 Red Hat Enterprise Linux(RHEL)、SUSE Linux Enterprise Server(SLES)、Ubuntu 和 Amazon Linux 2 上部署。SQL Server 数据库引擎在 Windows Server 和 Linux 上的运行方式是相同的,但在使用 Linux 系统时,某些任务存在一些根本性的变化。在 Linux 和 Windows 上运行 SQL Server Always On 应用程序的一个关键区别与失效转移群集有关。如果您在 Windows Server 主机上部署 Always On 可用性组,则可以利用 Windows Server 失效转移群集(WSFC)
Windows 和 Linux 上的 SQL Server 共享一个共同的代码库。也就是说,SQL Server 核心引擎根本没有任何更改即可在 Linux 上运行。SQL Server 引入了平台抽象层(SQLPAL),如下图所示。
SQLPAL 负责对 SQL Server 与底层操作系统之间的调用及通信进行抽象处理。主机扩展只是一个原生的 Linux 应用程序。低级操作系统函数是针对优化 I/O、内存和 CPU 使用情况而进行的原生调用。当主机扩展启动时,它会加载并初始化 SQLPAL,随后便会启动 SQL Server。SQLPAL 会启动独立的软件进程,这些进程会为其余的代码提供所需的转换服务。在 SQL Server 架构中新增这一层意味着,那些使 SQL Server 在 Windows 系统上表现如此强大的企业级核心功能和优势,在任何操作系统环境下都能得以实现。
成本影响
对于 r5.2xlarge 实例,在每种情况下,Windows Server 的许可费用均降低约 268 美元。与使用价格较低的 SQL Server 版本相比,此次成本削减占服务器总成本的比例更高。下表显示成本节省情况。
| 实例 | 版本 | Windows 上的 SQL Server 的每月费用 | Linux 上的 SQL Server 的每月费用 | 节省成本 |
|---|---|---|---|---|
| r5.2xlarge | Web | 735 美元 | 466 美元 | 37% |
| r5.2xlarge | Standard | 1337 美元 | 1068 美元 | 20% |
| r5.2xlarge | 企业 | 2826 美元 | 2558 美元 | 10% |
注意
上表中的价格估算基于 us-east-1 区域的按需定价,可以直接在 AWS 定价计算器
以一个示例场景为例,一家处于 SMB 细分领域的 ISV 客户希望在其开发环境方面节省成本。他们已经在一组 Windows 服务器上使用了 SQL Server 开发人员版。通过从使用 SQL Server 开发人员版的 Windows 切换到使用 SQL Server 开发人员版的 Linux,ISV 客户可以节省 33% 的开发工作负载费用。以下表格列出了此情景下的相关估算成本。
| 估算 | 月度成本 |
|---|---|
| Windows + SQL Server |
9307.72 美元 |
| Linux + SQL Server |
6218.36 美元 |
| 预估的成本节省 | 3089.36 美元(33%) |
在另一个示例场景中,一家公司将包含许可证的 SQL Server EC2 实例从 Windows 迁移到了 Linux。该公司每年在 Windows Server 的许可费用上节省了总计 30 万美元——约占其整个 AWS 费用的 20%。
成本优化建议
我们建议您考虑以下几点:
-
从 SQL Server 2017 开始,Linux 上的 SQL Server 受到支持。
-
为了帮助进行切换,您可以使用适用于 Microsoft SQL Server 数据库的 Windows 到 Linux 平台更换助手。平台更换助手是一款脚本工具,能够帮助您将现有的 SQL Server 工作负载从 Windows 迁移到 Linux 操作系统。它会检查常见的不兼容性,从 Windows 主机中导出数据库,然后将这些数据库导入到在 Ubuntu 16.04 上运行 Microsoft SQL Server 2017 的 EC2 实例中。
-
您也可以使用 SQL Server 中的备份和还原
功能从 Windows 上的 SQL Server 切换到 Linux。 -
您可以使用 AWS Launch Wizard 轻松快速地部署到 Linux 或 Ubuntu 上的 SQL Server。Launch Wizard 可以根据您的应用程序需求,在独立部署和高可用性场景下,在 Linux 或 Ubuntu 系统上部署 SQL Server。有关更多信息,请参阅 AWS 博客上的 Microsoft 工作负载中的使用 AWS Launch Wizard 部署到 Linux 上的 SQL Server Always
。
下图展示了采用 Microsoft SQL Server 数据库的 Windows 到 Linux 更换平台助手的解决方案架构。
其他资源
-
Linux 上的 SQL Server 概述
(Microsoft Learn) -
Linux 上的 SQL Server 的安装指南
(Microsoft Learn) -
使用 AWS Launch Wizard 部署到 Linux 上的 SQL Server Always
(AWS 博客上的 Microsoft 工作负载) -
Linux 上的高可用性 SQL Server
(AWS 开源博客)