說明在 Azure 中部署 SQL Server 的 PaaS 選項
平台即服務 (PaaS) 在雲端提供完整的開發和部署環境,可用於簡單的雲端型應用程式以及進階企業應用程式。
Azure SQL Database 和 Azure SQL 受控執行個體是 PaaS 供應項目的一部分,可供 Azure SQL 使用。
Azure SQL Database – 雲端中建置在 SQL Server 引擎之上的一系列產品。 此項目會為開發人員提供大量彈性建置新應用程式服務,以及大規模精細微署選項。 SQL Database 提供的低維護解決方案,對於某些工作負載而言可能是絕佳的選項。
Azure SQL 受控執行個體 – 最適合大部分移轉至雲端的案例,因為此執行個體提供完全受控的服務與功能。
如上所示的影像,各供應項目均提供您對基礎設施的特定層級管理,取決於成本效率的程度。
部署模型
Azure SQL Database 可在兩種不同的部署模型中使用:
單一資料庫 – 根據每個資料庫層級計費和管理的單一資料庫。 您可以從級別和資料大小的角度來個別管理每個資料庫。 在這種模式下部署的每個資料料庫都有自己的專用資源,即使是部署至相同的邏輯伺服器。
彈性集區 – 一起管理並共用一組通用資源的資料庫群組。 彈性集區為軟體即服務應用程式模型提供符合成本效益的解決方案,因為資源會在所有資料庫之間共用。 您可以根據以 DTU 為基礎的購買模型或以虛擬核心為基礎的購買模型來設定資源。
購買模型
在 Azure 中,所有服務皆受到實體硬體支援,而且您可以選擇兩種不同的購買模型:
資料庫交易單位 (DTU)
DTU 是根據結合計算、儲存體和 I/O 資源的公式計算。 對於想要簡單、預先設定資源選項的客戶而言,這是不錯的選擇。
DTU 購買模型隨附數個不同的服務層級,例如基本、標準和進階版。 每一層級都有不同的功能,在選擇此平台時提供了廣泛的選項。
就效能而言,基本層級會用於需求較低的工作負載,而進階版則用於大量工作負載需求。
計算和儲存體資源取決於 DTU 層級,並在固定的儲存體限制、備份保留和成本下提供一系列的效能功能。
注意
僅 Azure SQL Database 才支援 DTU 購買模型。
如需 DTU 購買模型詳細資訊,請參閱以 DTU 為基礎的購買模型概觀。
虛擬核心
虛擬核心模型可讓您根據指定的工作負載購買指定數目的虛擬核心。 虛擬核心是購買 Azure SQL Database 資源時的預設購買模型。 虛擬核心資料庫在核心數目和記憶體數量與提供給資料庫的儲存體之間具有特定關係。 Azure SQL Database 和 Azure SQL 受控執行個體支援虛擬核心購買模型。
您也可以在三個不同的服務層級購買虛擬核心資料庫:
一般用途 – 此層級適用於一般用途的工作負載。 其是由 Azure 進階儲存體支援。 其將具有高於業務關鍵的延遲。 此項目也提供下列計算層:
- 已佈建 – 已預先配置計算資源。 每小時依設定的虛擬核心數計費。
- 無伺服器 – 已自動調整計算資源。 每秒依使用的虛擬核心數計費。
商務關鍵性 – 此層級適用於高效能的工作負載,提供任一服務層級的最低延遲。 此層級是由本機 SSD 支援,而不是 Azure Blob 儲存體。 也提供最高的失敗復原能力,以及提供可用來缷載報告工作負載的內建唯讀資料庫複本。
超大規模資料庫 – 超大規模資料庫可以擴展超過其他 Azure SQL Database 供應項目的 4 TB 限制,且具有可支援最高 100 TB 資料庫的唯一架構。
無伺服器
名稱「無伺服器」可能有點令人困惑,因為您仍將 Azure SQL Database 部署到您所連線的邏輯伺服器。 Azure SQL Database 無伺服器是一種計算層,可根據工作負載需求自動擴大或縮小指定資料庫的資源。 如果工作負載不再需要計算資源,則資料庫將會變成「暫停」,而且當資料庫處於未啟動狀態期間僅會向您收取儲存體的費用。 嘗試連線時,資料庫將會「繼續」並變成可用。
控制暫停的設定稱為自動暫停延遲,而且最小值為 60 分鐘,最大值為 7 天。 如果資料庫已經閒置該段時間,就會暫停。
一旦資料庫在指定的時間量處於非作用中狀態,其就會暫停,直到嘗試後續連線為止。 設定計算自動調整範圍和自動暫停延遲會影響資料庫效能和計算成本。
任何使用無伺服器的應用程式都應該設定為處理連線錯誤,並包含重試邏輯,因為連線到暫停的資料庫將會產生連線錯誤。
無伺服器與 Azure SQL Database 的一般虛擬核心模型之間的另一個差異是,有了無伺服器,您可以指定虛擬核心的最小和最大數目。 記憶體和 I/O 限制會與指定的範圍成比例。
上圖顯示 Azure 入口網站中無伺服器資料庫的設定畫面。 您可以選擇將最小值選為虛擬核心的一半,以及最大值可高達 16 個虛擬核心。
無伺服器與 Azure SQL Database 中的所有功能完全相容,因為其中有些需要背景程式會隨時執行,例如:
- 異地複寫
- 長期備份保留期
- 彈性作業中的工作資料庫
- SQL 資料同步中的同步資料庫 (資料同步是在資料庫群組之間複寫資料的服務)
注意
目前只有虛擬核心購買模型中的一般用途層級支援 SQL Database 無伺服器。
備份
平台即服務供應項目的其中一個最重要功能就是備份。 在此情況下,不需要您的介入,備份即會自動執行。 備份會儲存在 Azure Blob 異地備援儲存體中,而且根據預設,會保留 7 到 35 天,取決於資料庫的服務層級。 基本和虛擬核心資料庫預設為保留 7 天,而在虛擬核心資料庫上,系統管理員可以調整此值。 您可以藉由設定長期保留 (LTR) 來延長保留時間,這可讓您保留最多 10 年的備份。
為了提供備援,您也能夠使用可讀取的異地備援 Blob 儲存體。 此儲存體會將您的資料庫備份複寫至您喜好設定的次要區域。 其也可讓您在需要時從該次要區域讀取。 不支援手動備份資料庫,且平台會拒絕執行上述操作的任何要求。
系統會依照指定的排程來取得資料庫備份:
- 完整 – 一週一次
- 差異 – 每 12 小時
- 記錄 – 每 5-10 分鐘,取決於交易記錄活動
此備份排程應符合大部分復原點/時間目標 (RPO/RTO) 的需求,不過,每個客戶都應評估其是否符合您的商業需求。
有數個選項可用於還原資料庫。 由於平台即服務的本質,您無法使用傳統方法 (例如發出 T-SQL 命令 RESTORE DATABASE
) 手動還原資料庫。
無論實作何種還原方法,都無法在現有的資料庫上進行還原。 如果需要還原資料庫,必須先卸除或重新命名現有的資料庫,然後才能起始還原程序。 此外,請記住,根據平台服務層級,無法保證還原時間,且可能會發生變動。 建議您測試還原流程,以取得還原可能需要多少時間的基準計量。
可用的還原選項包括:
使用 Azure 入口網站進行還原 – 使用 Azure 入口網站,您可以選擇將資料庫還原到相同的 Azure SQL Database 伺服器,也可以使用還原,在任何 Azure 區域中的新伺服器上建立新的資料庫。
使用指令碼語言進行還原 – 若要還原資料庫,可以使用 PowerShell 和 Azure CLI。
注意
僅限複製備份至 Azure Blob 儲存體可供 SQL 受控執行個體使用。 SQL Database 不支援此功能。
如需自動備份的詳細資訊,請參閱自動備份 - Azure SQL 資料庫 和 Azure SQL 受控執行個體。
作用中異地複寫
異地複寫是一種商務持續性功能,可將資料庫以非同步方式複寫到最多四個的次要複本。 當交易認可至主要複本 (及其在相同區域內的複本) 時,系統會將交易傳送至要重新執行的次要複本。 由於此通訊是以非同步方式完成,因此呼叫中應用程式不必在 SQL Server 將控制權傳回給呼叫者之前,等待次要複本認可交易。
次要資料庫是可讀取的,而且可以用來卸載唯讀工作負載,進而釋出主要資料庫上交易工作負載的資源,或將資料放在更接近使用者之處。 此外,次要資料庫可以位於與主要資料庫相同的區域中,也可以位於另一個 Azure 區域中。
有了異地複寫,您可以透過使用者手動或從應用程式起始容錯移轉。 如果發生容錯移轉,您可能必須更新應用程式連接字串,以反映目前是主要資料庫的新端點。
容錯移轉群組
容錯移轉群組是建置在異地複寫中使用的技術之上,但提供單一端點來進行連線。 使用容錯移轉群組的主要原因是,此技術提供了端點,可用來將流量路由至適當的複本。 然後,您的應用程式可以在容錯移轉之後連接,而沒有連接字串變更。