在子網路之間移動 Azure SQL 受控執行個體

適用於:Azure SQL 受控執行個體

Azure SQL 受控執行個體必須部署在 Azure虛擬網路內的專用子網路內。 可在子網路中部署的受控執行個體數目,取決於子網路的大小 (子網路範圍)。

本文會說明如何將受控執行個體從一個子網路移至另一個子網路 (在同一個或不同的 VNet 中),類似於縮放虛擬核心或變更執行個體服務層級。 在移動期間,SQL 受控執行個體可供使用,但在更新結束時會出現容錯移轉所造成的短暫停機期間,通常會持續最多10秒,即使長時間執行的交易中斷也是如此。

將執行個體移至另一個子網路會觸發下列虛擬叢集作業:

  • 虛擬叢集將會建置目的地子網中基礎結構或調整大小。
  • 會移除來源子網路中的虛擬叢集,或將虛擬叢集重組。

將您的執行個體移至另一個子網路之前,建議先熟悉以下概念:

需求及限制

若要部署受控執行個體,或將它移至另一個子網路,目的地子網路必須符合特定的網路需求

子網路整備度

移動受控執行個體之前,請確認子網路已標示為已可供受控執行個體使用

在 Azure 入口網站的 [虛擬網路] UI 中,符合受控執行個體必要條件的虛擬網路會分類為 [已可供受控執行個體使用]。 子網路已部署受控執行個體的虛擬網路,在虛擬網路名稱之前會顯示 SQL 受控執行個體的圖示。 準備好用於受控執行個體的空子網路,會顯示虛擬網路子路網圖示。

標示為尚未就緒的子網路無法滿足 SQL 受控執行個體部署的所有需求。 使用子網路名稱右邊的資訊圖示,了解子網路未就緒的原因,以及子網路是否符合網路需求。 這些需求包括:

  • 委派給 Microsoft.Sql/managedInstances 資源提供者
  • 連接路由表
  • 連結網路安全性群組

如果子網路是其他虛擬網路的一部分,其額外需求為

  • 目前和目的地虛擬網路之間的雙向對等互連
  • 目前和目的地子網路會使用不同的路由表和網路安全群組。

達成所有需求之後,子網路會從 [尚未就緒] 移至 [已可供受控執行個體使用] 類別,並且可用於受控執行個體。

已經正在使用的子網路 (用於執行個體部署的子網路不能包含其他資源),或具有不同的 DNS 區域的子網路 (跨子網路執行個體移動限制),一律是 [尚未就緒] 類別的一部分。

Screenshot of the Azure SQL Managed Instance subnet options.

根據子網路的狀態和指定名稱,可能會對目的地子網路進行下列調整:

  • 已可供受控執行個體使用 (包含現有的 SQL 受控執行個體) :不做任何調整。 這些子網路已包含受控執行個體,對子網路進行任何變更可能會影響現有的執行個體。
  • 已可供受控執行個體使用 (空白):工作流程會驗證網路安全性群組和路由表中所有必要的規則,並新增任何必要但遺漏的規則。 1

注意

1 若自訂規則是新增至來源子網路設定,則不會將自訂規則複製到到目的地子網路。 來源子網路設定的任何自訂項目都必須手動複寫到目的地子網路。 達成此目標的方式之一,是使用相同的路由表和網路安全性群組做為來源和目的地子網路。

目的地子網路限制

選擇現有執行個體的目的地子網路時,請考慮下列限制:

  • SQL 受控執行個體可以移至下列其中一個子網路:

    • 在與目前使用的相同虛擬網路中,
    • 對等互連虛擬網路中,如果移至另一個虛擬網路中的子網路。
  • 目的地子網路中執行個體的 DNS 區域必須符合要移動的執行個體其中的 DNS 區域。 如果您打算移至非空白子網路,便適用這項限制。

    • 您可以特地準備目的地子網路,以保留要移動的 SQL 受控執行個體其中的 DNS 區域。 您可以在空子網路中建立新的 SQL 受控執行個體,並在建立要求中提供 dnsZonePartner 參數來完成準備。 此參數做為值接受 SQL 受控執行個體識別碼,在此情況下,您可以使用稍後移至新子網路1的執行個體。

注意

1除了此方法之外,您沒有其他方法決定 SQL 受控執行個體的 DNS 區域,因為這是隨機產生的。 此外,目前還不存在更新現有 SQL 受控執行個體 DNS 區域的方法。

  • 如果您想要使用容錯移轉群組來移轉 SQL 受控執行個體,則適用下列必要條件:
    • 目標子網路必須擁有容錯移轉群組複寫所需的相同安全性規則 (如同來源子網路):在網路安全性群組 (NSG) 中開啟輸入和輸出埠 5022 和範圍 11000~11999,以取得來自其他受控執行個體子網路的連線 (其保存容錯移轉群組複本),以允許兩個執行個體之間的複寫流量。
    • 目標子網路不能有與子網路 (其保存容錯移轉群組次要執行個體複本) 重疊的位址範圍。 例如,如果 MI1 位於子網路 S1 中,子網路 S2 中容錯移轉群組的次要執行個體則為 MI2。 我們想要將 MI1 移至子網路 S3。 子網路 S3 不能有子網路 S2 的重疊位址範圍。

若要深入了解如何設置自動容錯移轉群組的網路,請檢閱在受控執行個體之間啟用異地複寫

作業步驟

下表詳細說明在執行個體移動作業期間所發生的作業步驟:

步驟名稱 步驟描述
要求驗證 驗證提交的參數。 如果偵測到設定錯誤,則作業會失敗並發生錯誤。
虛擬叢集調整大小/建立 視目的地子網路的狀態而定,會建立虛擬叢集或調整虛擬叢集的大小。
新執行個體啟動 SQL 程序會從已部署在目的地子網路中的虛擬叢集開始。
植入資料庫檔案/附加資料庫檔案 根據服務層級而定,可能會植入資料庫或附加資料庫檔案。
準備容錯移轉和容錯移轉 植入資料或重新附加資料庫檔案之後,系統會準備容錯移轉。 當一切就緒時,系統會執行容錯移轉並出現短暫的停機時間,通常不到 10 秒。
舊版 SQL 執行個體清除 移除來源虛擬叢集中的舊 SQL 程序。
虛擬叢集刪除 如果是來源子網路內的最後一個執行個體,則最後一個步驟會同步刪除虛擬叢集。 否則,虛擬叢集會以非同步方式重組。

如需操作步驟的詳細說明,請參閱 Azure SQL 受控執行個體管理作業概觀

移動執行個體

跨子網路的執行個體移動,屬於執行個體更新作業。 現有的執行個體更新 API、Azure PowerShell 和 Azure CLI 命令已透過子網路識別碼屬性加以強化。

請在 Azure 入口網站中,使用 [網路] 窗格上的子網路欄位,將執行個體移至目的地子網路。 使用 Azure PowerShell 或 Azure CLI 時,請在更新命令中提供不同的子網路識別碼,將執行個體從現有的子網路移至目的地子網路。

如需執行個體管理命令的完整參考,請參閱 Azure SQL 受控執行個體的管理 API 參考

用於選擇執行個體子網路的選項位於 Azure 入口網站的 [網路] 窗格。 您選取子網路並儲存變更時,執行個體移動作業就會啟動。

移動作業的第一個步驟是準備部署所需的目的地子網路,這可能需要幾分鐘的時間。 子網路就緒後,執行個體移動管理作業就會啟動,並在 Azure 入口網站中顯示。

How to select subnet on SQL Managed Instance networking pane

可在 Azure 入口網站的 [概觀] 窗格中監視執行個體移動作業。 選取通知即可開啟另一個窗格,其中包含目前步驟、步驟總數和作業取消按鈕的相關資訊。

Screenshot shows the Overview page where you can monitor the move operation and cancel it.

後續步驟