適用於:Azure SQL 受控執行個體
本文提供管理 Azure SQL 受控實例時所發生之不同作業的概觀。 管理作業是當您建立、更新或刪除實例時,在後端執行的作業。
如需每個管理作業步驟和估計持續時間的詳細描述,請檢閱 管理作業持續時間。
什麼是管理作業?
管理 Azure SQL 受控實例牽涉到下列作業:
- 建立:第一次建立新的 SQL 受控實例時所發生的作業。 這包括建立基礎虛擬機 (VM) 群組,以及部署 SQL Database Engine 程式。
- 更新:當您變更現有 SQL 受控實例的屬性時所發生的作業,例如調整計算或記憶體、變更服務層級,或更新實例組態。 進行更新通常涉及調整 VM 群組的大小、植入數據,然後切換至新的 SQL 資料庫引擎處理程序。
- 刪除:刪除現有 SQL 受控實例時所發生的作業,包括清除與實例相關聯的 VM 群組等資源。
如需每個管理作業步驟和估計持續時間的詳細描述,請檢閱 管理作業持續時間。
SQL 受控實例管理作業可透過下列基礎程式來完成:
- 虛擬機 (VM) 群組作業:涉及建立和管理裝載 SQL 受控實例的基礎 VM 群組的作業。 這包括調整 VM 群組的大小、建立新的 VM 群組,以及管理這些群組內的虛擬機。
- 種子設置:跨 SQL 資料庫引擎程序的初始化和數據同步,通常是為了準備容錯轉移。
- 故障轉移:將流量故障轉移至另一個 SQL Database Engine 進程的作業,不論是在相同或新的 VM 群組中。
VM 群組作業
為了支援 Azure 虛擬網路內的部署,並為客戶提供隔離和安全性,SQL 受控執行個體會依賴虛擬叢集。 虛擬叢集代表一組專用的隔離虛擬機,部署在虛擬網路子網內,並組織在 VM 群組內。 基本上,部署到空子網的每個 SQL 受控實例都會產生新的虛擬叢集,以建置第一個 VM 群組。
SQL 受控實例上的後續管理作業可能會影響基礎 VM 群組。 影響基礎 VM 群組的變更可能會影響管理操作的時間長短,因為部署更多虛擬機到虛擬叢集會增加負擔,因此在規劃新的部署或更新現有實例時需予考慮。
如需虛擬叢集架構的詳細資訊,請參閱 虛擬叢集架構。
播種
植入在 Azure SQL 受控實例的作業中扮演重要角色,特別是在資料庫設定和復寫期間。 植入是跨 SQL Database 引擎進程初始化和同步處理數據的程式,這是實例管理的重要部分。 雖然通常是冗長但成功作業中最耗時的步驟,但植入是建立良好且功能良好的 SQL 受控實例環境的基石。
如需植入作業的估計持續時間,請參閱 管理作業持續時間。
播種過程通常包括以下階段,不論服務層級為何:
- 初始化:系統會識別來源和目的地資料庫,並啟動一些工作來準備 SQL Database Engine 進程以進行數據傳輸。
- 數據傳輸:實際數據封裝會從來源傳輸到目標 SQL Database 引擎進程,其中包含資料庫的完整或部分複本,視案例而定。
- 同步處理:一旦初始數據傳輸完成,系統會透過事務歷史記錄區塊的復寫來同步處理任何後續更新或變更,以確保數據完整性。
- 驗證和完成:程式已完成,並驗證目標 SQL Database 引擎程式以確認複寫和植入成功。 故障轉移發生時,流量被路由至新的 SQL Database Engine 程序。
除了將服務層級變更為業務關鍵服務層級以外,一般用途服務層級中沒有數據植入。 一般用途服務層級中的管理作業牽涉到將遠端記憶體與舊的 SQL Database Engine 進程中斷連結,並將它附加至新的 SQL Database Engine 進程。
相反地,專為高效能工作負載設計的 商務關鍵 服務層級需要本機記憶體和計算和儲存層的程式代碼限制。 因此,此服務層級中幾乎每個作業和案例都需要植入,以確保數據可用性和一致性。
是否觸發植入取決於特定案例和服務層級,例如:
-
一般用途和下一代一般用途 服務層級:
- 變更為業務關鍵服務層級 – 數據必須從遠端記憶體傳輸到一般用途服務層級中使用的本機記憶體。
- 啟用或停用 區域備援 – 數據必須複製到區域備援區域或從區域備援區域複製。
-
業務關鍵 服務層級:
- 調整記憶體:由於記憶體實際連結至本機計算機,因此每個記憶體變更都需要建立新的 VM 群組,因此數據必須從舊電腦傳輸到新電腦(在所有 4 個複本上)。
- 調整虛擬核心:每個計算調整作業都需要建立新的 VM 群組,因此數據必須從舊計算機複製到新計算機(在所有 4 個復本上)。
- 變更硬體或維護時段:如果已在具有相符組態的子網內建立 VM 群組,則會重新調整該 VM 群組的大小。 如果這是新的組態,則會建立新的 VM 群組。 數據必須從舊的 VM 群組複製到新的 VM 群組(在所有 4 個複本上)。
- 變更服務層級:數據必須從本機記憶體複製到一般用途服務層級中使用的遠端記憶體。
- 啟用或停用 區域備援 – 數據必須複製到區域備援區域或從區域備援區域複製。
傳播速度
下列因素會影響播種過程的時間長短:
- 資料庫大小:較大的資料庫需要更多時間來傳輸數據,並跨SQL Database Engine 進程進行同步處理。
- 網路相依性:網路頻寬和延遲可能會大幅影響植入速度。
- 備份和還原作業:來源 SQL Database Engine 進程的進行中備份作業可能會影響準備數據以傳送至另一個 SQL Database Engine 程式。
- 實例工作負載:植入期間的實例工作負載可能會導致節流,並嚴重延長程式。
雖然這些因素大多超出您的控制範圍,但您可以管理實例流量,以大幅優化植入速度。 植入會使用相同的實例計算資源來管理實例流量。 植入期間的流量會降低虛擬核心可用性,導致植入程式容量不足,導致節流。
植入期間的高流量可能會影響同步處理,因為植入的設計目的是封裝和傳輸單一作業中所有目前儲存的數據。 在植入開始之後抵達的關於舊 SQL Database Engine 處理程序的後續數據變更,必須通過事务日志块复制以遞增方式同步到新的 SQL Database Engine 處理程序,才能進行故障轉移。 如果實例負載過重,植入可能會難以跟上傳入的數據,而導致同步處理階段的延遲和潛在失敗。 在植入開始之後,舊 SQL Database Engine 進程的連續高流量可能會導致同步處理階段永遠不會完成的情況,因為新的數據會持續到達,而且必須傳輸。 這可能會導致永久的數據傳輸週期,以防止故障轉移至新的 SQL Database Engine 程式。
如需植入作業的估計持續時間,請參閱 管理作業持續時間。
Azure 基礎結構和通知
植入是無法精確量化或嚴格預測的程式,因為它依賴 共用的 Azure 服務。 數據傳輸和植入作業取決於整個 Azure 生態系統中共用的各種內部 Azure 服務和基礎結構。 Azure 中許多其他不相關的服務會使用這些服務。 Azure 生態系統中的所有服務都會競爭可用的資源,這會導致因多種因素而影響暫時可用性的波動。 雖然Microsoft可以提供基礎結構容量運作的範圍,但進行精確的預測是具有挑戰性的。
故障轉移
實例故障轉移是指流量從舊的 SQL Database Engine 程序被切換到包含 SQL 受控實例的 VM 群組內的節點群組中的新 SQL Database Engine 程序的時刻。 故障轉移是大部分管理作業的重要部分,尤其是在更新現有實例時。 當流量重新導向至新的 SQL Database Engine 進程時,中斷連線的短暫時刻稱為 故障轉移。
只有在流量重新路由傳送至新的 SQL Database Engine 進程時,您的實例才會 在故障轉移期間無法使用。 在 業務關鍵 服務層級中,您的實例最多無法使用 20 秒,而在 一般用途 服務層級中,您的實例最多 2 分鐘無法使用。 任何因管理作業而準備故障轉移的後端作業,例如在背景中重新分配 業務關鍵 服務層級中的資料庫,都會在背景發生,且不會影響實例的可用性。
服務層級之間的架構差異會在《可用性》中深入說明。
管理作業交互影響
SQL 受控實例上的管理作業可能會影響放在相同子網內之其他實例的管理作業:
在虛擬叢集中,長時間執行的還原作業會暫停相同虛擬叢集中的其他作業,例如建立或擴充作業。
例: 如果有長時間執行的還原作業,以及壓縮 VM 群組的調整要求,壓縮要求需要較長的時間才能完成,因為它會等待還原作業完成,才能繼續。
後續的實例建立或調整 作業會因先前已開始的實例建立或調整大小的 VM 群組實例而被暫停。
例: 如果在相同 VM 群組下的相同子網中有多個建立和/或調整要求,其中有一個要求啟動 VM 群組重設大小,那麼所有在初始作業要求提出後 5 分鐘以上提交的要求,會比預期更久,因為這些要求必須等候重設大小完成後才能繼續。
在 1 分鐘的時間窗內提交的建立和縮放操作 會被批次處理並平行執行。
例: 針對在 1 分鐘視窗中提交的所有作業,只會執行一個虛擬叢集重設大小(從提交第一個作業要求的那一刻起算)。 如果在提交第一個要求後超過 1 分鐘,再次提交另一個要求,則會等候虛擬叢集重設大小完成後才開始執行。
重要
由於另一項正在進行中作業而擱置的管理作業,一旦符合繼續的條件,系統就會自動繼續執行。 不需要使用者採取任何動作,即可繼續暫時暫停的管理作業。
監視管理運作
若要瞭解如何監視管理作業進度和狀態,請參閱 監視 Azure SQL 受控實例管理作業。
取消管理作業
若要瞭解如何取消管理作業,請參閱 取消 Azure SQL 受控實例管理作業。
相關內容
- 快速入門:建立 Azure SQL 受控實例
- 功能比較:Azure SQL Database 和 Azure SQL 受控實例
- 適用於 Azure SQL 受控實例的 連線架構
- 虛擬叢集架構 - Azure SQL 受控實例
- 使用資料庫移轉服務 SQL 受控實例移轉