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

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

本文說明如何將 Azure SQL 管理實例從一個子網路移到同一虛擬網路或不同的虛擬網路中的另一個子網路。 此作業類似於調整虛擬核心或變更執行個體服務層級。 在移轉期間,SQL 受控執行個體仍維持可用,但在發生容錯移轉時會有短暫的停機時間,通常最長不超過 10 秒,即使長時間執行的交易遭到中斷亦然。

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

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

需求和限制

你必須在 Azure 虛擬網路的專用子網路中部署 SQL 受管實例。 子網的大小(子網範圍)決定了你能部署多少 SQL 管理的實例。 要部署 SQL 管理的實例或將其移至其他子網,目的子網必須符合特定的 網路需求

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

在啟動子網移動前,請確認來源與目的子網在 5022 與 11000-11999 埠之間是否允許連線。 此驗證包括驗證整個網路路徑,並確保任何使用者自訂路由、網路虛擬設備(NVA)、防火牆或其他網路裝置未阻擋這些埠口的流量。

子網路整備度

在移動 SQL 受控執行個體之前,請確認子網路已標示為 [準備好受控執行個體]。

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

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

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

如果該子網是另一個虛擬網路的一部分,你需要:

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

當你滿足這些條件後,子網路會從 「尚未準備好 」轉為 「準備好受管理實例 」類別,並可用於 SQL 管理實例。

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

Azure SQL 受管實例子網路選項的螢幕擷圖。

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

  • 適用於受管理實例(包含現有的 SQL 受管理實例)

    不進行任何調整。 這些子網路已包含 SQL 受控執行個體,對子網路進行任何變更都可能會影響現有的執行個體。

  • 準備進入受管理實例(空)

    工作流程會驗證網路安全群組與路由表中所有必要的規則,並新增任何必要但缺少的規則。 你在來源子網路設定中新增的自訂規則不會被複製到目的地子網路。 你必須手動將來源子網設定的任何自訂複製到目的地子網。 實現此複製的一種方法是使用相同的路由表與網路安全群組作為來源與目的子網。

目的地子網路限制

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

  • 你可以將 SQL 管理實例移到以下子網路:

    • 與目前使用的虛擬網路相同,或
    • 對等互連虛擬網路中,如果要移至另一個虛擬網路中的子網路。
  • 目的地子網路中執行個體的 DNS 區域必須符合要移動之執行個體的 DNS 區域。 如果您計劃移至非空白子網路,則適用此限制。

    你可以特別設定目的子網,保留你要移動的 SQL 管理實例的 DNS 區域。 在空子網中建立一個新的 SQL 管理實例,並在 create 請求中提供 dnsZonePartner 參數,來準備子網。 這個 參數作為值會接受 SQL 管理實例的 ID,在這種情況下你可以使用之後會被移到新子網的實例。

    除了這種方法外,沒有其他方法可以決定 SQL 管理實例的 DNS 區域,因為它是隨機產生的。 目前,無法更新現有 SQL 管理實例的 DNS 區域。

如果您想遷移帶有 故障轉移群組的 SQL 管理實例,以下先決條件適用:

  • 目標子網路必須允許與來源子網路相同、故障轉移群組所需的複寫流量:

    在網路安全群組(NSG)中,開啟來自另一個 SQL 管理實例子網(存放故障轉移群組副本的子網)的入站與出站埠 5022 及範圍 11000-11999,以允許兩個實例間的複寫流量。 確保整個網路路徑也允許這些流量。 使用者自訂路由、網路虛擬設備、防火牆或其他中介裝置仍可阻擋這些埠口,即使 NSG 規則正確。

  • 目標子網路的位址範圍不得與裝載容錯移轉群組次要執行個體複本的子網路重疊。

    例如,如果 MI1 位於子網路 S1 中,子網路 S2 中容錯移轉群組的次要執行個體則為 MI2。 你想把MI1移到子網S3。 子網路 S3 不能有子網路 S2 的重疊位址範圍。

若要深入了解容錯移轉群組的網路設定方式,請參閱 啟用 SQL 受控執行個體之間的異地複寫

作業步驟

將實例從一個子網移動到另一個子網需要許多步驟。 根據你的 SQL 管理實例如何配置,移動操作可能需要 30 分鐘到 6 小時不等。

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

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

有關操作步驟的詳細說明,請參閱 Azure SQL 管理實例中的管理操作持續時間

移轉執行個體

跨子網路移動執行個體是執行個體更新作業的一部分。 現有的執行個體更新 API、Azure PowerShell 和 Azure CLI 命令會透過子網路識別碼屬性進行增強。

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

欲了解完整的實例管理指令參考,請參見 Azure SQL 管理實例的受管 API 參考

你可以在 Azure 入口網站的 網路 面板中選擇虛擬機子網。 一旦你選擇子網路並儲存變更,實例移動操作就會開始。

移動操作首先準備目的子網部署,這可能需要數分鐘。 子網準備好後,實例移動管理操作開始並顯示在 Azure 入口網站。

如何在 SQL 管理實例網路面板中選擇子網路的截圖。

你可以從 Azure 入口網站的 概覽 面板監控實例移動操作。 選擇通知以開啟另一個窗格,該窗格包含當前步驟、總步數及取消操作按鈕。

螢幕擷取畫面顯示 [概觀] 頁面,您可在其中監控移動作業並取消該作業。