

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 評估 Linux 上的 SQL Server
<a name="sql-server-linux"></a>

## 概觀
<a name="sql-server-linux-overview"></a>

自 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)](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/windows-server-failover-clustering-wsfc-with-sql-server?view=sql-server-ver16) 和 Active Directory 作為支援容錯移轉叢集的內建功能。不過，WSFC 和 Active Directory 都不支援 Linux 上的容錯移轉叢集。如果您想要在 Linux 上啟動 SQL Server 的容錯移轉叢集，您可以使用 [ClusterLabs Pacemaker](https://aws.amazon.com/blogs/opensource/deploying-a-highly-available-microsoft-sql-server-on-linux-on-aws/) [AWS Launch Wizard](https://aws.amazon.com/launchwizard/) 來簡化 Linux 執行個體上的叢集設定和 SQL 安裝。

Windows 和 Linux 上的 SQL Server 共用共同的程式碼基底。也就是說，SQL Server 核心引擎完全未變更為在 Linux 上執行。SQL Server 推出平台抽象層 (SQLPAL)，如下圖所示。

![\[Sequel 伺服器平台抽象層 (SQLPAL)\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/sql_pal.png)


SQLPAL 負責抽象化 SQL Server 與基礎作業系統之間的呼叫和通訊。主機擴充功能只是原生 Linux 應用程式。低階作業系統函數是原生呼叫，可最佳化 I/O、記憶體和 CPU 使用量。當主機延伸項目啟動時，它會載入並初始化 SQLPAL，然後啟動 SQL Server。SQLPAL 會啟動隔離的軟體程序，提供其餘程式碼所需的翻譯。將此新層新增至 SQL Server 架構表示無論作業系統為何，都可以使用讓 SQL Server 在 Windows 上如此強大的相同企業級核心功能和優點。

## 成本影響
<a name="sql-server-linux-cost-impact"></a>

對於 r5.2xlarge 執行個體，每個案例中的 Windows Server 授權成本降低約為 268 USD。相較於使用價格較低的 SQL Server 版本，減少是伺服器總成本的較高百分比。下表顯示節省的成本。


****  

| 執行個體 | 版本 | Windows 上的 SQL Server 每月成本 | Linux 上的 SQL Server 每月成本 | 節省成本 | 
| --- | --- | --- | --- | --- | 
| r5.2xlarge | Web | 735 美元 | 466 美元 | 37% | 
| r5.2xlarge | 標準 | 1，337 美元 | 1，068 美元 | 20% | 
| r5.2xlarge | Enterprise | 2，826 美元 | 2，558 美元 | 10% | 

**注意**  
上表中的價格估算是根據 `us-east-1`區域中的隨需定價，並且可以直接在 中檢視[AWS 定價計算工具](https://calculator.aws/#/estimate?id=fd37122637710aa7ba46d1949e8b6a15f68d3c0f)。

考慮一個範例案例，其中 SMB 客群中的 ISV 客戶希望為其開發環境節省成本。他們已在一組 Windows 伺服器上使用 SQL Server Developer Edition。透過從 Windows with SQL Server Developer Edition 切換到 Linux with SQL Server Developer Edition，ISV 客戶可以在其開發工作負載上節省 33%。下表顯示此案例的下列預估成本。


****  

| 預估 | 每月成本 | 
| --- | --- | 
| [Windows \$1 SQL Server](https://calculator.aws/#/estimate?id=da0a0f5f58ddf91aa3398af3a78691cfa2204673) | 9，307.72 美元 | 
| [Linux \$1 SQL Server](https://calculator.aws/#/estimate?id=131966c579020eaec957f441c67e9aa0bfd32411) | 6，218.36 美元 | 
| 預估節省成本 | 3，089.36 美元 (33%) | 

在另一個範例案例中，公司會將包含授權的 SQL Server EC2 執行個體從 Windows 遷移至 Linux。該公司每年節省總計 300，000 USD 的 Windows Server 授權成本，大約是總 AWS 帳單的 20%。

## 成本最佳化建議
<a name="sql-server-linux-optrec"></a>

我們建議您考慮下列事項：
+ 從 SQL Server 2017 開始支援 Linux 上的 SQL Server。
+ 若要協助進行切換，您可以使用[適用於 Microsoft SQL Server 資料庫的 Windows 到 Linux 轉換助理](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/replatform-sql-server.html)。重建助理是一種指令碼工具，可協助您將現有的 SQL Server 工作負載從 Windows 移至 Linux 作業系統，方法是檢查是否有常見的不相容、從 Windows 主機匯出資料庫，然後將資料庫匯入在 Ubuntu 16.04 上執行 Microsoft SQL Server 2017 的 EC2 執行個體。
+ 您也可以使用 SQL Server 中的[備份和還原](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-ver16)功能，從 Windows 上的 SQL Server 切換到 Linux。
+ 您可以使用 輕鬆快速地部署到 Linux 或 Ubuntu 上的 SQL Server[AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard.html)。啟動精靈可以根據您的應用程式需求，在獨立和高可用性案例中部署 Linux 或 Ubuntu 上的 SQL Server。如需詳細資訊，請參閱 AWS 部落格 Microsoft 工作負載中的[部署至 SQL Server Always on Linux AWS Launch Wizard](https://aws.amazon.com/blogs/modernizing-with-aws/deploy-microsoft-sql-server-always-on-to-linux-with-aws-launch-wizard/) 中的文章。

下圖顯示 解決方案的架構，該解決方案使用適用於 Microsoft SQL Server 資料庫的 Windows 到 Linux 轉換助理。

![\[Windows 到 Linux 轉換助理架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/replatforming_assistant.png)


## 其他資源
<a name="sql-server-linux-resources"></a>
+ [Linux 上的 SQL Server 概觀 ](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-overview?view=sql-server-ver16)(Microsoft Learn)
+ [Linux 上的 SQL Server 安裝指南](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver16) (Microsoft Learn)
+ [使用 部署至 SQL Server Always on Linux AWS Launch Wizard](https://aws.amazon.com/blogs/modernizing-with-aws/deploy-microsoft-sql-server-always-on-to-linux-with-aws-launch-wizard) ( AWS 部落格上的 Microsoft 工作負載）
+ [Linux 上的高可用性 SQL Server](https://aws.amazon.com/blogs/opensource/deploying-a-highly-available-microsoft-sql-server-on-linux-on-aws/) (AWS 開放原始碼部落格）