使用已啟用 Azure Arc 的 SQL 受控執行個體來部署受控資料庫服務
已啟用 Azure Arc 的 SQL 受控執行個體是由 SQL Server 引擎所支援的 Azure SQL 服務,可部署至您所選擇的基礎結構。
與 Azure SQL 的比較
Azure SQL 是 Azure 基礎結構中所部署的資料庫服務系列:
Azure 虛擬機器中的 SQL Server
此 Azure SQL 部署選項可讓完整授權 SQL Server 產品在 Windows 或 Linux 上您所選擇的版本上執行。 使用者會管理客體虛擬機器內的所有內容,而 Microsoft 則會管理基礎結構。 此選項稱為「基礎結構即服務 (IaaS)」。
Azure SQL 受控執行個體
此 Azure SQL 部署選項提供預先安裝且無版本的 SQL Server 執行個體作為完全受控服務。 使用者幾乎可以存取 SQL Server 引擎執行個體的 100% 功能。 Microsoft 會管理裝載執行個體所需的平台和基礎結構的所有層面。 此選項是「平台即服務 (PaaS)」範例。
Azure SQL Database
此 Azure SQL 部署選項提供由預先安裝且無版本的 SQL Server 所支援的自主 SQL Server 資料庫作為完全受控服務。 使用者管理資料庫,而 Microsoft 管理基礎 SQL 執行個體、平台和基礎結構。 此選項也是「平台即服務 (PaaS)」範例。
已啟用 Azure Arc 的 SQL 受控執行個體
已啟用 Azure Arc 的 SQL 受控執行個體,與 Azure SQL 受控執行個體類似。 其具有類似的功能和管理功能。 已啟用 Azure Arc 的 SQL 受控執行個體的用意是提供 Azure 的相同「平台即服務 (PaaS)」功能和體驗,而客戶則使用 Kubernetes 平台來選擇和管理基礎結構。
功能的比較
若要了解已啟用 Azure Arc 的 SQL 受控執行個體的功能,請務必查看其核心功能、部署選項,以及與 Azure 的整合。
核心功能
已啟用 Azure Arc 的 SQL 受控執行個體是以 SQL Server 引擎為基礎,因此提供的核心執行個體功能幾乎與 SQL Server 和 Azure SQL 受控執行個體 100% 相容。 此執行個體包括相容的 T-SQL 語言介面,以及所有安全性、效能和可用性功能。 您可以在 Microsoft 文件中深入了解已啟用 Azure Arc 的 SQL 受控執行個體的功能。
與 Azure SQL 受控執行個體一樣,當您部署已啟用 Azure Arc 的 SQL 受控執行個體時,您會收到預先安裝且無版本的 SQL Server。 已啟用 Azure Arc 的 SQL 受控執行個體會使用來自 Microsoft Container Registry (MCR) 的容器映像。
Azure SQL 受控執行個體會使用閘道伺服器以從基礎連線詳細資料中將應用程式抽象化。 已啟用 Azure Arc 的 SQL 受控執行個體也會使用 Kubernetes LoadBalancer 或 NodePort 服務來提供連線抽象概念。
服務層
與 Azure SQL 受控執行個體一樣,您可以使用兩個稱為服務層的部署選項來部署已啟用 Azure Arc 的 SQL 受控執行個體:
一般用途 - 顧名思義,此服務層適用於大部分工作負載。 此服務層具有核心和記憶體這類資源的限制,但透過 Kubernetes 和共用儲存體隨附內建基本高可用性。 一般用途層中的執行個體對應至 SQL Server Standard Edition 中所支援的功能。
業務關鍵 - 此服務層是針對需要最佳效能和高可用性層級的工作負載所設計。 此服務層沒有記憶體或核心的限制,並使用可用性群組來提供具有讀取擴增的高可用性。業務關鍵層中的執行個體對應至 SQL Server Enterprise Edition 中所支援的功能。
這兩個服務層都是根據每個核心來進行計費,但也可以免費使用 Azure Hybrid Benefit 授權和開發人員選項。 業務關鍵服務層目前處於預覽狀態,因此不會產生任何使用費用。 您可以在 Microsoft 文件中深入了解服務層。
Azure 整合
當您部署 Azure SQL 受控執行個體時,計費、使用量、計量和記錄都可以與 Azure 整合。 此外,您可以使用入口網站這類 Azure 介面來部署和設定 Azure SQL 受控執行個體。
與已啟用 Azure Arc 的 SQL 受控執行個體的整合取決於您所使用的連線模式。
透過 Azure Arc 代理程式和 Azure Arc 資料控制器,使用直接連線模式來自動處理與 Azure 的整合。 Azure 介面,例如 Azure 入口網站可以用於部署和設定。
如果您使用間接連線模式,則必須將最少的資料量傳送至 Azure 以進行計費。 您可以選擇性地匯出計量和記錄這類資料。 間接連線模式不支援透過 Azure 入口網站的部署和設定。 不過,Azure CLI 和 kubectl 這類介面可以用於部署和設定。
管理功能比較
由於已啟用 Azure Arc 的SQL 受控執行個體是一種受控服務,因此將管理功能與 Azure SQL 受控執行個體進行比較非常有用。 下列各節會比較無版本引擎、部署和設定、監視、高可用性、災害復原和移轉功能。
無版本
使用 Azure SQL 受控執行個體的其中一個優點是不需要修補和更新 SQL Server、作業系統和任何平台軟體。 Azure SQL 受控執行個體的引擎通常稱為「無版本」,因為沒有與 SQL Server 相同的主要版本概念。 此執行個體會視需要持續更新軟體修補程式或新功能。
已啟用 Azure Arc 的 SQL 受控執行個體也會使用無版本引擎,以透過更新過的容器映像視需要自動套用更新。 可用性的維護方式是使用 Kubernetes 的強大功能來停止和啟動新的容器。
部署和設定
已啟用 Azure Arc 的 SQL 受控執行個體的部署是一種簡單且具宣告式的程序,就像 Azure SQL 受控執行個體一樣。 當您部署已啟用 Azure Arc 的 SQL 受控執行個體時,可以指定:服務層、核心和記憶體限制、儲存體類別規格,以及 SQL 設定選項,例如 SQL Server Agent、定序和追蹤旗標。
在直接連線模式中,您可以使用 Azure 入口網站來部署已啟用 Azure Arc 的 SQL 受控執行個體。 在間接連線模式中,您可以使用 Azure CLI (使用 arcdata 延伸模組)、kubectl 或 Azure Data Studio 來部署已啟用 Azure Arc 的 SQL 受控執行個體。
在 SQL 執行個體外部,您也可以使用 Azure 入口網站,透過直接連線模式來設定已啟用 Azure Arc 的 SQL 受控執行個體。 在任一連線模式中,您可以使用 Azure CLI 或 kubectl 在 SQL 執行個體外部設定選項。
在 SQL 執行個體內部,可以使用 sp_configure、ALTER SERVER CONFIGURATION 和 ALTER DATABASE 這類標準 SQL Server 介面來設定執行個體和資料庫選項。
監視
與 Azure SQL 受控執行個體一樣,您可以使用 Azure 監視器來監視已啟用 Azure Arc 的 SQL 受控執行個體,以取得重要計量。 在叢集內,您也可以在本機搭配使用內建監視與節點或 SQL 執行個體的 Grafana 儀表板。
已啟用 Azure Arc 的 SQL 受控執行個體的記錄可在 Azure 入口網站中透過記錄分析進行檢視。 在叢集內,您也可以在本機搭配使用內建記錄與 Kibana。
因為已啟用 Azure Arc 的 SQL 受控執行個體是以 SQL Server 為基礎,所以標準 ERRORLOG 檔案可以用來檢視 SQL 錯誤和執行個體詳細資料。 已啟用 Azure Arc 的 SQL 受控執行個體也支援所有可用的動態管理檢視 (DMV) 和擴充事件。
高可用性
使用已啟用 Azure Arc 的 SQL 受控執行個體這類受控服務的其中一個優點是內建高可用性。 與 Azure SQL 受控執行個體一樣,用來達到高可用性的方法取決於服務層。
針對一般用途服務層,Kubernetes StatefulSets 的內建高可用性會與共用儲存體搭配使用。
針對業務關鍵服務層,內建高可用性是使用 Kubernetes StatefulSets 與 SQL Server Always On 可用性群組複本的組合所提供。 系統會自動針對使用者部署和設定可用性群組複本。 與 Azure SQL 受控執行個體一樣,唯讀複本可以用來卸載讀取工作負載。 master 和 model 這類系統資料庫是可用性群組的一部分。 系統將會在容錯移轉事件之後自動提供 SQL Agent 工作這類系統層級物件。
如果在叢集內移動執行個體,則 Kubernetes LoadBalancers 和 NodePorts 會提供應用程式的連線抽象概念。 此外,系統也會針對業務關鍵服務層提供唯讀連線抽象點。
因為 Microsoft 管理 Azure SQL 受控執行個體的完整平台和基礎結構,所以使用者會獲得服務等級協定 (SLA) 的好處。 由於客戶必須管理已啟用 Azure Arc 的 SQL 受控執行個體之基礎結構,因此客戶擁有和管理任何 SLA。
災害復原
與 Azure SQL 受控執行個體一樣,已啟用 Azure Arc 的 SQL 受控執行個體會為資料庫提供自動備份系統,包括時間點還原。 使用者可以手動執行 COPY_ONLY 備份,以及隨時進行還原。
使用者可設定所需的復原點目標 (RPO) 和保留期間。 這些設定會決定進行交易記錄備份的頻率,以及保留備份的時間長度。
Azure SQL 受控執行個體針對使用 Azure 儲存體的備份提供內建備援。 已啟用 Azure Arc 的 SQL 受控執行個體的使用者可以設定特定 Kubernetes 儲存體類別以用於 SQL 備份,但負責任何備援需求。
遷移
因為已啟用 Azure Arc 的 SQL 受控執行個體使用 SQL Server 引擎,所以可以使用資料庫備份和還原來移轉現有 SQL Server 版本。 資料庫可以直接從 Azure 儲存體進行還原,也可以將本機備份複製至 SQL 受控執行個體的容器來進行還原。
已啟用 Azure Arc 的 SQL 受控執行個體的介面
下列介面可以與已啟用 Azure Arc 的 SQL 受控執行個體搭配使用,來管理執行個體以及建置應用程式:
SQL Server Management Studio (SSMS)
SQL Server Management Studio (SSMS) 與查詢和管理已啟用 Azure Arc 的 SQL 受控執行個體完全相容。
Azure Data Studio (ADS)
Azure Data Studio (ADS) 是一種多平台工具,可查詢和管理已啟用 Azure Arc 的 SQL 受控執行個體。 ADS 支援使用 T-SQL 和 T-SQL 筆記本的查詢。 此外,您可以使用 ADS Azure Arc 延伸模組來建立和管理已啟用 Azure Arc 的資料服務資源,例如資料控制器、SQL 受控執行個體和 PostgreSQL 伺服器 (預覽)。
SQL 命令列工具
已啟用 Azure Arc 的 SQL 受控執行個體支援 sqlcmd 和 bcp 這類 SQL 命令列工具。
Azure 入口網站
如果您使用直接連線模式,則可以從 Azure 入口網站建立、檢視和管理已啟用 Azure Arc 的資料服務。 此外,如果您使用間接連線模式上傳資料,則可以在 Azure 入口網站中檢視已啟用 Azure Arc 的 SQL 受控執行個體詳細資料。
Azure CLI
您可以搭配使用 arcdata 延伸模組與多平台 Azure 命令列介面 (CLI) 來建立、檢視和管理已啟用 Azure Arc 的資料服務,例如 SQL 受控執行個體。 Azure CLI 只能用於間接連線模式,以部署已啟用 Azure Arc 的 SQL 受控執行個體。 Azure CLI 是使用間接連線模式時可上傳計費、計量和記錄的主要介面。
kubectl
您可以使用多平台 kubectl 命令列介面 (CLI) 來建立、檢視和管理已啟用 Azure Arc 的資料服務,包括 SQL 受控執行個體。 Azure CLI 是可與已啟用 Azure Arc 的 SQL 受控執行個體搭配使用的慣用命令列介面,但您可以搭配使用 yaml 檔案與 kubectl 來建立和管理資源。 Kubectl 只能用於間接連線模式,以部署已啟用 Azure Arc 的 SQL 受控執行個體。 在某些情況下 (例如編輯預設時間點還原設定),需要使用 kubectl。
SQL 驅動程式
您可以使用任何支援的 SQL Server 驅動程式,讓應用程式進行連線,以及針對已啟用 Azure Arc 的 SQL 受控執行個體執行查詢。 C#、Java、Node.js、PHP、Python 和 Ruby 這類熱門程式設計語言包括驅動程式支援。