什麼是 Linux 上的 SQL Server?
執行 Linux 的組織可以考慮使用 SQL Server 來裝載資料庫。 同樣地,執行 SQL Server 的組織也可以考慮將其伺服器移至 Linux 作業系統。 但他們為什麼應該進行這樣的變更?
身為 Wide World Importers 的系統管理員,您負責處理裝載該公司所有前端網路伺服器的 Linux 伺服器,以及後端 Windows 資料庫伺服器陣列。 您想要改用 Linux 體驗來部署 Linux 上的 SQL Server,因此您將會探索使用 Linux 上的 SQL Server 的主要優點。 您的目標是為您的 CTO 製作一份簡報。 您將會說明 Linux 上的 SQL Server 的優點,以及將其安裝在 Linux 上的影響。
在此您將了解應考慮執行 Linux 上的 SQL Server 的原因。
為何要使用 Linux 上的 SQL Server?
Linux 是一套以 Linux 核心執行的作業系統或發行版本。 無論是內部部署還是雲端式部署,都是熱門的作業系統選擇。 SQL Server 是熱門的關聯式資料庫管理系統 (RDBMS),其原本只能在 Windows 作業系統上執行。 從 SQL Server 2017 開始,Microsoft 已支援在 Linux 作業系統上安裝 SQL Server。
如果您想要執行 SQL Server,請記住您並非只能使用 Windows 平台。 由於 Linux 是開放原始碼,因此您可以將其安裝在低成本的商用硬體上,進一步降低作業系統授權費用。 Linux 也有較小的磁碟使用量與較低的硬體需求,因此和 Windows 伺服器相比,Linux VM 的啟動速度會更快。
Linux 上的 SQL Server 支援 Ubuntu、Red Hat Enterprise Linux 與 SUSE。
為什麼選擇 SQL Server?
如果您選擇 Linux 上的 SQL Server 作為 Wide World Importers 的所選資料平台,您可以將目前在 Windows 平台上執行的所有現有 SQL Server 資料庫部署到 Linux 上。 您也可以使用 Linux 版本的 SQL Server 來執行現有的應用程式,且您的組織能重複使用其現有的 DBA 與應用程式開發技能。
這也會讓您以直覺的方式備份及還原到新的 Linux 環境。 一個風險較低的方法是將非商務關鍵性資料庫移至 Linux,直接與 Windows 比較功能和效能。 如果證實這樣做沒有任何問題,您接著便可以建立詳細的移轉策略來移轉整個資料資產。 您可以將此工作與需要移動到不同的資料庫技術和作業系統的方法互相比較。
Linux 上的 SQL Server 也具有領先業界的效能所帶來的所有優點。 其在 TPC-E 評定中具有最高效能,且在 TPC-H 1 TB、10 TB 和 30-TB 評定中也都具有最高效能。 國家標準暨技術研究院 (NIST) 一直都將 Linux 上的 SQL Server 評比為最安全的資料庫。
考慮使用 SQL Server 的另一個好原因是 PolyBase 功能。 透過使用 PolyBase,您可以設定資料外部來源來為外部資料表提供資料。 當您提交查詢時,您可以傳回來自這些外部資料表的資料,如同這些資料是儲存在您 SQL Server 資料庫內的一般資料表中一樣。 資料外部來源可以包含 Hadoop、Azure Blob 儲存體帳戶、Oracle、PostgreSQL、MongoDB 與許多其他來源。 在您設定好外部資料表之後,您也可以將其用來針對 SQL Server 進行資料的匯出或匯入,而不需要使用擷取、轉換和載入 (ETL) 套件,或另外的匯入或匯出工具。 您也可以使用 PolyBase 來將資料外部來源與 SQL Server 商業智慧工具整合。
Wide World Importers 已具有除了 SQL Server 以外,位於 Oracle 與 SAP HANA 中的資料庫。 您曾考慮使用 ETL 工具,將來自所有這些來源的資料填入資料倉儲,讓您可以針對其撰寫報表。 如果您部署具有 PolyBase 的 SQL Server,便可以改為考慮在 SQL Server 中將 Oracle 與 SAP HANA 新增為外部資料來源,以便整合這三個系統。 如此一來,您的報表可以將其所有查詢提交到 SQL Server,但還是包含儲存在 Oracle 與 SAP HANA 中的資料。 在此設定中,SQL Server 會作為資料虛擬化中樞。
共用程式碼基底
Linux 與 Windows 上的 SQL Server 都會使用 SQL 平台抽象層 (SQLPAL),其可讓 SQL Server 在所有支援的作業系統上執行。 如此一來,開發人員可以使用其最喜愛的程式設計語言 (例如 .NET、PHP、node.JS、JAVA 或 Python) 來撰寫應用程式,並能夠預期應用程式在任何地方都會以相同的方式執行,無論其是使用在 Windows、Linux、Linux 容器、Azure SQL Edge,或是 Azure SQL Database 上執行的 SQL Server。
容器
使用 VM 的其中一個缺點,是每部 VM 都需要作業系統的所有資源,不論執行的服務是否需要。 容器化的虛擬化系統能透過共用主機作業系統,同時仍隔離個別應用程式與服務,來避免此缺點。 在某個容器上執行的服務會與另一個容器中的服務隔離。 對於服務而言,其看起來就像是在個別 VM 中執行,但其實會共用單一作業系統的記憶體與處理器。
您可以在 Linux 容器上執行 SQL Server。 如果您必須管理大量的此類容器,您可以使用如 Kubernetes 或 Docker Swarm 的協調流程工具。 您會這麼做的原因可能是為了高可用性,或是為了讓 DevOps 小組能透過在容器中部署新程式碼來實作持續整合或持續傳遞。