分享方式:


設定 Azure SQL 受控執行個體的容錯移轉群組

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

本文會說明如何使用 Azure 入口網站和 Azure PowerShell 設定 Azure SQL 受控執行個體容錯移轉群組

如需端對端 PowerShell 指令碼,在容錯移轉群組內建立這兩個執行個體,請檢閱<使用 PowerShell 將執行個體新增至容錯移轉群組>。

必要條件

若要設定容錯移轉群組,您應該已經有適當的權限和想要作為主要執行個體的 SQL 受控執行個體。 若要開始使用,請檢閱<建立執行個體>。

建立次要執行個體和容錯移轉群組之前,請務必先檢閱限制

組態需求

若要設定主要和次要 SQL 受控執行個體之間的容錯移轉群組,請考量下列需求:

  • 次要受控執行個體必須為空,不得包含任何使用者資料庫。
  • 這兩個執行個體必須位於相同的服務層級,而且具有相同的儲存大小。 雖非必要,但強烈建議這兩個執行個體應具有相同的計算大小,以確保次要執行個體可持續處理從主要執行個體複寫的變更,包括尖峰活動的期間。
  • 主要執行個體之虛擬網路的 IP 位址範圍不得與次要受控執行個體虛擬網路的位址範圍重疊,或與主要或次要虛擬網路對等互連的任何其他虛擬網路重疊。
  • 這兩個執行個體都必須位於相同的 DNS 區域。 當您建立次要受控執行個體時,就必須指定主要執行個體的 DNS 區域識別碼。 若未指定,在每個虛擬網路中建立第一個執行個體時,系統會產生隨機字串形式的區域識別碼,並將一樣的識別碼指派給相同子網路中的所有其他執行個體。 一經指派,就無法再修改 DNS 區域。
  • 這兩個執行個體子網路的網路安全性群組 (NSG) 規則必須針對連接埠 5022 和連接埠範圍 11000-11999 具有開放的輸入和輸出 TCP 連線,以利兩個執行個體之間的通訊。
  • 基於效能考慮,應將受控執行個體部署在配對區域中。 與未配對區域相比,位於異地配對區域的受控執行個體可受益於明顯更高的異地複寫速度。
  • 這兩個執行個體都必須使用相同的更新原則

建立次要執行個體

建立次要執行個體時,必須使用具有 IP 位址空間的虛擬網路,該位址空間未與主要執行個體的 IP 位址空間範圍相重疊。 此外,設定新的次要執行個體時,您就必須指定主要執行個體的區域識別碼。

您可以使用 Azure 入口網站 和 PowerShell,來設定次要虛擬網路並建立次要執行個體。

建立虛擬網路

若要在 Azure 入口網站中為次要執行個體建立虛擬網路,請遵循下列步驟:

  1. 檢查主要執行個體的地址空間。 請前往 Azure 入口網站中主要執行個體的虛擬網路資源,然後選取 [設定] 下的 [位址空間]。 檢查 [位址範圍] 下的範圍:

    Azure 入口網站中主要虛擬網路位址空間的螢幕擷取畫面。

  2. 移至 [建立虛擬網路] 頁面,以新建您預計用於次要執行個體的虛擬網路。

  3. 在 [建立虛擬網路] 頁面的 [基本] 索引標籤上:

    1. 選取您想要用於次要執行個體的 [資源群組]。 如果該群組不存在,請加以新建。
    2. 提供虛擬網路的名稱,例如 vnet-sql-mi-secondary
    3. 選取與主要執行個體所在區域配對的區域。
  4. 在 [建立虛擬網路] 的 [IP 位址] 索引標籤上:

    1. 使用 [刪除位址空間],即可刪除現有的 IPv4 位址空間。
    2. 刪除位址空間之後,選取 [新增 IPv4 位址空間] 即可新增空間,接著提供 IP 位址空間,此空間與主要執行個體之虛擬網路所用的位址空間不同。 例如,如果目前主要執行個體使用 10.0.0.16 的位址空間,請針對您預計用於次要執行個體的虛擬網路位址空間輸入 10.1.0.0/16
    3. 使用 [+ 新增子網路],以新增具有預設值的預設子網路。
    4. 使用 [+ 新增子網路] 來新增名為 ManagedInstance 的空子網路,該子網路將專用於次要執行個體,使用的是與預設子網路不同的位址範圍。 例如,如果主要執行個體使用位址範圍 10.0.0.0 – 10.0.255.255,則為次要執行個體的子網路提供 10.1.1.0 - 10.1.1.255 的子網路範圍。

    Azure 入口網站中新虛擬網路位址空間的螢幕擷取畫面。

  5. 使用 [檢閱 + 建立] 即可檢閱設定,然後使用 [建立] 以新建執行個體。

建立次要執行個體

虛擬網路就緒後,請遵循以下步驟,在 Azure 入口網站中建立次要執行個體:

  1. 在 Azure 入口網站中,移至 [建立 Azure SQL 受控執行個體]

  2. [建立 Azure SQL 受控執行個體] 頁面的 [基本] 索引標籤上:

    1. 為次要執行個體選擇與主要執行個體配對的區域。
    2. 選擇與主要執行個體服務層級相符的服務層級。
  3. 在 [建立 Azure SQL 受控執行個體] 頁面的 [網路] 索引標籤上,使用 [虛擬網路/子網路] 底下的下拉式清單,來選取您先前建立的虛擬網路和子網路:

    醒目提示您所建立以在 Azure 入口網站中與次要執行個體搭配使用之網路的螢幕擷取畫面。

  4. 在 [建立 Azure SQL 受控執行個體] 頁面上的 [其他設定] 索引標籤上,選取 [是] 來 [用作為容錯移轉次要執行個體],然後從下拉式清單中選擇適當的主要執行個體。

    Azure 入口網站在其他設定頁面上將主要受控執行個體指定為容錯移轉次要執行個體的螢幕擷取畫面。

  5. 根據業務需求設定執行個體的其餘部分,然後使用 [檢閱 + 建立] 即可加以建立。

建立執行個體之間的連線

必須在裝載主要和次要執行個體的虛擬網路子網路之間建立連線,才能讓異地複寫流量不中斷。 有多種方式可以在不同 Azure 區域中與受控執行個體連線,包括:

建議使用全域虛擬網路對等互連,作為在容錯移轉群組中執行個體間建立連線最高效能且健全的方式。 全域虛擬網路對等互連會使用 Microsoft 骨幹基礎結構,在對等互連的虛擬網路之間提供低延遲、高頻寬的私人連線。 對等互連的虛擬網路之間所進行的通訊不需要公用網際網路、閘道或其他加密措施。

重要

連接涉及其他網路裝置之執行個體的替代方式,可能會使針對連線或複寫速度問題進行疑難排解變得更加複雜,可能需要網路系統管理員主動介入,並大幅延長解決時間。

如果您使用機制來建置執行個體之間的連線能力,而不使用建議的全域虛擬網路對等互連,則必須確定下列事項:

  • 防火牆或網路虛擬設備 (NVA) 之類的網路裝置,不會封鎖連接埠 5022 (TCP) 和連接埠範圍 11000-11999 的輸入和輸出連線流量。
  • 路由已正確設定,並且避免非對稱式路由。
  • 如果您在跨區域的中樞和支點網路拓撲中部署容錯移轉群組,以避免連線能力和複寫速度問題,則複寫流量應該直接在兩個受控執行個體子網路之間進行,而不是透過中樞網路導向。

本文會引導您使用 Azure 入口網站 和 PowerShell,在兩個執行個體的網路之間設定全域虛擬網路對等互連。

  1. Azure 入口網站中,移至主要受控執行個體的虛擬網路資源。

  2. 選取 [設定] 下的 [對等互連],即可開啟 [對等互連] 頁面,然後使用命令列中的 [+ 新增],即可開啟 [新增對等互連] 頁面。

    Azure 入口網站中虛擬網路 A 的對等互連頁面螢幕擷取畫面。

  3. 在 [新增對等互連] 頁面上,針對下列設定輸入或選取值:

    設定 描述
    遠端虛擬網路摘要
    對等互連連結名稱 對等互連的名稱必須是虛擬網路中的唯一名稱。 本文使用 Fog-peering
    虛擬網路部署模型 選擇資源管理員
    我知道我的資源識別碼 除非您知道資源識別碼,否則可以取消選取此方塊。
    訂用帳戶 從下拉式清單中選取 [訂閱]。
    虛擬網路 從下拉式清單中選取次要執行個體的虛擬網路。
    遠端虛擬網路對等互連設定
    允許「次要虛擬網路」存取「主要虛擬網路」 選取該方塊以允許兩個網路之間的通訊。 讓虛擬網路能夠彼此通訊,會讓連線到任一虛擬網路的資源能夠以相同的頻寬和延遲彼此通訊,彷彿這些資源是連線到相同的虛擬網路。 兩個虛擬網路中的資源之間所進行的所有通訊都是透過 Azure 私人網路來完成。
    允許「次要虛擬網路」接收來自「主要虛擬網路」的轉送流量 您可以選取或取消選取此方塊,兩者在本指南中都適用。 如需詳細資訊,請參閱建立對等互連
    允許「次要虛擬網路」中的閘道或路由伺服器將流量轉送至「主要虛擬網路」 您可以選取或取消選取此方塊,兩者在本指南中都適用。 如需詳細資訊,請參閱建立對等互連
    啟用「次要虛擬網路」,以使用「主要虛擬網路」的遠端閘道或路由伺服器 維持此方塊的不選取狀態。 如需其他可用選項的詳細資訊,請參閱建立對等互連
    區域虛擬網路摘要
    對等互連連結名稱 用於遠端虛擬網路的相同對等互連名稱。 本文使用 Fog-peering
    允許「主要虛擬網路」存取「次要虛擬網路」 選取該方塊以允許兩個網路之間的通訊。 讓虛擬網路能夠彼此通訊,會讓連線到任一虛擬網路的資源能夠以相同的頻寬和延遲彼此通訊,彷彿這些資源是連線到相同的虛擬網路。 兩個虛擬網路中的資源之間所進行的所有通訊都是透過 Azure 私人網路來完成。
    允許「主要虛擬網路」接收來自「次要虛擬網路」的轉送流量 您可以選取或取消選取此方塊,兩者在本指南中都適用。 如需詳細資訊,請參閱建立對等互連
    允許「主要虛擬網路」中的閘道或路由伺服器將流量轉送至「次要虛擬網路」 您可以選取或取消選取此方塊,兩者在本指南中都適用。 如需詳細資訊,請參閱建立對等互連
    啟用「主要虛擬網路」,以使用「次要虛擬網路」的遠端閘道或路由伺服器 維持此方塊的不選取狀態。 如需其他可用選項的詳細資訊,請參閱建立對等互連
  4. 使用 [新增] 以您選取的虛擬網路設定對等互連,並自動返回 [對等互連] 頁面,其中顯示兩個網路皆已連線:

    Azure 入口網站中對等互連頁面上的虛擬網路對等互連狀態螢幕擷取畫面。

設定連接埠和 NSG 規則

不論這兩個執行個體之間選擇的連線機制為何,網路都必須符合下列異地複寫流量流程的需求:

  • 指派至受控執行個體子網路的路由表和網路安全性群組不會在兩個對等互連的虛擬網路之間共用。
  • 裝載每個執行個體之兩個子網路上的網路安全性群組 (NSG) 規則允許連接埠 5022 以及連接埠範圍 11000-11999 上其他執行個體的輸入和輸出流量。

您可以使用 Azure 入口網站和 PowerShell,來設定連接埠通訊和 NSG 規則。

若要在 Azure 入口網站中開啟網路安全性群組 (NSG) 連接埠,請遵循下列步驟:

  1. 移至主要執行個體的網路安全性群組資源。

  2. 在 [設定] 下,選取 [輸入安全性規則]。 檢查您是否已經有規則,可允許連接埠 5022,以及範圍 11000-11999 的流量。 如果您有這類規則,且來源符合業務需求,則請略過此步驟。 如果規則不存在,或您想要使用不同的來源(例如更安全的 IP 位址)來刪除現有的規則,然後從命令列選取 + 新增,即可開啟新增輸入安全性規則窗格:

    Azure 入口網站中為 NSG 新增輸入安全性規則的螢幕擷取畫面。

  3. 新增輸入安全性規則窗格中,針對下列設定輸入或選取值:

    設定 建議值 描述
    來源 IP 位址或服務標籤 通訊來源的篩選條件。 IP 位址是最安全的方式,建議用於實際執行環境。 服務標籤適用於非商業執行環境。
    來源服務標籤 如果您選取 [服務標籤] 作為來源,請提供 VirtualNetwork 作為來源標籤。 預設標籤是預先定義的識別碼,代表 IP 位址的類別。 VirtualNetwork 標籤代表所有虛擬和區域網路位址空間。
    來源 IP 位址 如果您選取 IP 位址作為來源,請提供次要執行個體的 IP 位址。 使用 CIDR 表示法 (例如 192.168.99.0/24 或 2001:1234::/64) 或 IP 位址 (例如 192.168.99.0 或 2001:1234::) 提供位址範圍。 您也可以使用 IPv4 或 IPv6,提供以逗號分隔的 IP 位址或位址範圍清單。
    來源連接埠範圍 5022 此會指定將在哪些連接埠上會允許此規則的流量。
    服務 自訂 此服務會指定此規則的目的地通訊協定和連接埠範圍。
    目的地連接埠範圍 5022 此會指定將在哪些連接埠上會允許此規則的流量。 此連接埠應該符合來源連接埠範圍。
    動作 允許 在指定的連接埠上允許通訊。
    通訊協定 TCP 決定連接埠通訊的通訊協定。
    優先順序 1200 規則會依優先順序進行處理;數字越小,優先順序越高。
    名稱 allow_geodr_inbound 規則的名稱。
    描述 選擇性 您可以選擇提供描述,或將此欄位留空。

    選取 [新增],即可儲存設定與新增規則。

  4. 重複這些步驟,為連接埠範圍 11000-11999 新增另一個輸入安全性規則,其名稱如 allow_redirect_inbound,且優先順序會略高於 5022 規則,例如 1100

  5. 在 [設定] 下,選取 [輸出安全性規則]。 檢查您是否已經有規則,可允許連接埠 5022,以及範圍 11000-11999 的流量。 如果您有這類規則,且來源符合業務需求,則請略過此步驟。 如果規則不存在,或您想要使用不同的來源(例如更安全的 IP 位址)刪除現有的規則,然後從命令列選取 + 新增,即可開啟新增輸出安全性規則窗格。

  6. 在新增輸出安全性規則窗格上,針對連接埠 5022 以及範圍 11000-11999 使用相同的設定,就像您對輸入連接埠所做的一樣。

  7. 移至次要執行個體的網路安全性群組,並重複這些步驟,如此這兩個網路安全性群組皆會具有下列規則:

    • 允許連接埠 5022 上的輸入流量
    • 允許連接埠範圍 11000-11999 上的輸入流量
    • 允許連接埠 5022 上的輸出流量
    • 允許連接埠範圍 11000-11999 上的輸出流量

建立容錯移轉群組

使用 Azure 入口網站或 PowerShell 建立受控執行個體的容錯移轉群組。

使用 Azure 入口網站建立 SQL 受控執行個體的容錯移轉群組。

  1. Azure 入口網站的左側功能表中,選取 [Azure SQL]。 如果 Azure SQL 不在清單中,請選取 [所有服務],然後在搜尋方塊中鍵入 Azure SQL。 (選用) 選取 Azure SQL 旁的星號將其新增為左側導覽中的最愛項目。

  2. 選取您要新增至容錯移轉群組的主要受控執行個體。

  3. 在 [資料管理] 下選取 [容錯移轉群組],然後使用 [新增群組] 即可開啟 [執行個體容錯移轉群組] 頁面:

    Azure 入口網站中新增容錯移轉群組頁面的螢幕擷取畫面。

  4. 在 [執行個體容錯移轉群組] 頁面上:

    1. [主要受控執行個體] 是預先選取的狀態。
    2. 在 [容錯移轉群組名稱] 下,輸入容錯移轉群組的名稱。
    3. 在 [次要受控執行個體] 下,選取您想要作為容錯移轉群組中的次要受控執行個體。
    4. 從下拉式清單中選擇 [讀取/寫入容錯移轉原則]。 建議使用 [手動] 即可控制容錯移轉。
    5. 除非您預計只使用此複本進行災害復原,否則請將 [啟用容錯移轉權限] 保持為 [關閉] 狀態。
    6. 使用 [建立] 即可儲存設定並建立容錯移轉群組。

    在 Azure 入口網站中建立容錯移轉群組的螢幕擷取畫面。

  5. 容錯移轉群組的部署開始之後,系統便會帶您回到 [容錯移轉群組] 頁面。 此頁面會重新整理,以顯示部署完成後的新容錯移轉群組。

測試容錯移轉

使用 Azure 入口網站或 PowerShell,測試容錯移轉群組的容錯移轉。

注意

如果執行個體位於不同的訂用帳戶或資源群組中,則請從次要執行個體初始化容錯移轉。

使用 Azure 入口網站測試容錯移轉群組的容錯移轉。

  1. 移至 Azure 入口網站內的主要或次要受控執行個體。

  2. 選取資料管理底下的容錯移轉群組

  3. 容錯移轉群組窗格上,記下哪個執行個體是主要執行個體,以及哪個執行個體是次要執行個體。

  4. 容錯移轉群組窗格上,從命令列選取容錯移轉。 對於 TDS 工作階段中斷連線的警告選取 [是],並注意授權含意。

    在 Azure 入口網站中對容錯移轉群組進行容錯移轉的螢幕擷取畫面。

  5. 容錯移轉群組窗格上,容錯移轉成功之後,這些執行個體會切換角色,讓上一個次要執行個體成為新的主要執行個體,而上一個主要執行個體會變成新的次要執行個體。

    重要

    如果角色未切換,請檢查執行個體與相關 NSG 與防火牆規則之間的連線能力。 只有在角色切換之後,才繼續進行下一個步驟。

  6. (選用)在容錯移轉群組窗格上,使用容錯移轉將角色切換回來,如此原始主要執行個體就會再次成為主要執行個體。

修改現有的容錯移轉群組

您可以使用 Azure 入口網站、PowerShell、Azure CLI 和 REST API 來修改現有的容錯移轉群組,例如變更容錯移轉原則。

若要使用 Azure 入口網站對現有容錯移轉群組進行修改,請執行下列步驟:

  1. 在 Azure 入口網站中移至您的 [SQL 受控執行個體]

  2. 資料管理之下,選取容錯移轉群組以開啟容錯移轉群組窗格。

  3. 容錯移轉群組窗格上,從命令列選取編輯組態,以開啟編輯容錯移轉群組窗格:

    Azure 入口網站中的容錯移轉群組窗格的螢幕截圖,其中反白顯示了「編輯設定」。

尋找接聽程式端點

設定容錯移轉群組之後,請更新應用程式的連接字串,以指向讀取/寫入接聽程式端點,讓應用程式能夠在容錯移轉後繼續連線至主要執行個體。 藉由使用接聽程式端點,您就不需在每次容錯移轉群組容錯移轉時手動更新連接字串,因為一律會將流量路由傳送至目前的主要資料庫。 您也可以將唯讀工作負載指向唯讀接聽程式端點。

重要

雖然支援使用實例特定連接字串連線到故障轉移群組中的實例,但強烈建議您不要使用。 雖然支援使用特定執行個體的連接字串連接到容錯移轉群組中的執行個體,但強烈建議不要這樣做。 請改用接聽程式端點。

若要在 Azure 入口網站尋找接聽程式端點,請移至 SQL 受控執行個體,然後在 [資料管理] 底下,選取 [容錯移轉群組]

向下捲動以尋找接聽程式端點:

  • 形式為 fog-name.dns-zone.database.windows.net讀取/寫入接聽程式端點,會將流量路由傳送至主要執行個體。
  • 形式為 fog-name.secondary.dns-zone.database.windows.net唯讀接聽程式端點,會將流量路由傳送至次要執行個體。

在 Azure 入口網站中查找容錯移轉群組連接字串的螢幕擷取畫面。

在不同訂用帳戶的執行個體之間建立容錯移轉群組

只要訂用帳戶與相同的 Microsoft Entra 租用戶相關聯,您就可以在兩個不同的訂用帳戶中,建立 SQL 受控執行個體之間的容錯移轉群組。

  • 使用 PowerShell API 時,您可以藉由為次要 SQL 受控執行個體指定 PartnerSubscriptionId 參數來進行。
  • 使用 REST API 時,properties.managedInstancePairs 參數中包含的每個執行個體識別碼都可以有其自己的訂用帳戶識別碼。
  • Azure 入口網站不支援在不同的訂用帳戶之間建立容錯移轉群組。

重要

Azure 入口網站不支援在不同的訂用帳戶之間建立容錯移轉群組。 若容錯移轉群組是跨不同訂用帳戶和/或資源群組所使用,則無法透過 Azure 入口網站,從主要 SQL 受控執行個體手動起始容錯移轉。 請改為從異地次要執行個體起始。

防止重要資料遺失

由於廣域網路有高度延遲情況,因此異地複寫會採用非同步複寫機制。 如果主要資料庫故障,則非同步複寫無可避免會遺失一些資料。 若要保護重要交易資料不要遺失,應用程式開發人員可以在認可交易後立即呼叫 sp_wait_for_database_copy_sync 預存程序。 呼叫 sp_wait_for_database_copy_sync 會封鎖呼叫執行緒,直到最後認可的交易已傳輸和強行寫入次要資料庫交易記錄為止。 不過,此動作不會等候已傳輸的交易在次要資料庫上重新執行 (重做)。 sp_wait_for_database_copy_sync 的範圍限定為特定異地複寫連結。 任何具備主要資料庫連接權限的使用者都可以呼叫此程序。

注意

sp_wait_for_database_copy_sync 可防止特定交易在異地容錯移轉之後資料遺失,但是不保證讀取權限的完整同步處理。 sp_wait_for_database_copy_sync 程序呼叫所造成的延遲可能會相當明顯,且取決於呼叫時主要資料庫上尚未傳輸的交易記錄大小。

變更次要區域

假設執行個體 A 是主要執行個體,執行個體 B 是現有的次要執行個體,而執行個體 C 是第三個區域中的新次要執行個體。 若要進行轉換,請遵循下列步驟:

  1. 在相同的 DNS 區域中,建立與 A 相同大小的執行個體 C。
  2. 刪除執行個體 A 與 B 之間的容錯移轉群組。此時,嘗試登入開始失敗,因為容錯移轉群組接聽程式的 SQL 別名已遭到刪除,而閘道將無法辨識該容錯移轉群組名稱。 次要資料庫會與主要資料庫中斷連線,而且會成為讀寫資料庫。
  3. 在執行個體 A 與 C 之間使用相同名稱建立容錯移轉群組。請遵循設定容錯移轉群組指南中的指示。 這是資料大小的作業,並會在來自執行個體 A 的所有資料庫都已植入和同步時完成。
  4. 如果不需要執行個體 B,請加以刪除,以避免不必要的費用。

注意

在步驟 2 之後,在步驟 3 完成之前,執行個體 A 中的資料庫將保持未受保護,無法不受執行個體 A 的嚴重失敗影響。

變更主要區域

假設執行個體 A 是主要執行個體,執行個體 B 是現有的次要執行個體,而執行個體 C 是第三個區域中的新主要執行個體。 若要進行轉換,請遵循下列步驟:

  1. 在相同的 DNS 區域中,建立與 B 相同大小的執行個體 C。
  2. 從執行個體 B 初始化手動容錯移轉,使其成為新的主要執行個體。 執行個體 A 會自動成為新的次要執行個體。
  3. 刪除執行個體 A 與 B 之間的容錯移轉群組。此時,使用容錯移轉群組端點的登入嘗試會開始失敗。 A 上的次要資料庫與主要資料庫中斷連線,而且會成為讀寫資料庫。
  4. 在執行個體 B 和 C 之間建立同名的容錯移轉群組。這是一項資料大小作業,而且會在執行個體 B 中的所有資料庫都已植入並與執行個體 C 同步處理時完成。此時,登入嘗試會停止失敗。
  5. 手動容錯移轉以將 C 執行個體切換為主要角色。 執行個體 B 會自動成為新的次要執行個體。
  6. 如果不需要執行個體 A,請加以刪除,以避免不必要的費用。

警告

在步驟 3 之後,在步驟 4 完成之前,執行個體 A 中的資料庫將保持未受保護,無法不受執行個體 A 的嚴重失敗影響。

重要

刪除容錯移轉群組時,也會刪除接聽程式端點的 DNS 記錄。 屆時,其他人便有可能使用相同名稱建立容錯移轉群組。 因為容錯移轉群組名稱必須是全域唯一,這會防止您再次使用相同的名稱。 若要將此風險降至最低,請不要使用一般容錯移轉群組名稱。

變更更新原則

容錯移轉群組中的執行個體必須具有相符的更新原則。 若要在屬於容錯移轉群組的執行個體上啟用一律保持最新的更新原則,請先在次要執行個體上啟用一律保持最新的更新原則、等待變更生效,然後更新主要執行個體的原則。

雖然變更容錯移轉群組中主要執行個體的更新原則會導致此執行個體容錯移轉至另一個本機節點 (類似於對不屬於容錯移轉群組的執行個體進行管理操作),但不會導致容錯移轉群組進行容錯移轉,使主要執行個體保持為主要角色。

警告

一旦將更新的原則變更為一律保持最新,就無法再將其變更回 SQL Server 2022 更新原則。

啟用相依於系統資料庫中物件的案例

系統資料庫不會複寫到容錯移轉群組中的次要執行個體。 若要啟用相依於系統資料庫中物件的案例,請務必在次要執行個體上建立相同的物件,並將其與主要執行個體保持同步。

例如,如果您計劃在次要執行個體上使用相同的登入,請務必使用相同的 SID 來建立。

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

若要深入瞭解,請參閱登入和代理程式作業的複寫。

同步執行個體之間的執行個體屬性和保留原則

容錯移轉群組中的執行個體會保留不同的 Azure 資源,而對主要執行個體的設定所做的任何變更將會自動複寫至次要執行個體。 請務必在主要次要執行個體上執行所有相關的變更。 例如,如果您在主要執行個體上變更備份儲存體備援或長期備份保留原則,也請務必在次要執行個體上變更。

調整執行個體

您可以將主要和次要執行個體在相同的服務層級內擴大或縮小至不同的計算大小,或擴大或縮小至不同的服務層級。 在相同服務層級內擴大時,請先擴大異地次要資料庫,再擴大主要資料庫。 在相同服務層級內縮小時,則反轉順序:先縮小主要資料庫,再縮小次要資料庫。 當您將執行個體擴展至不同的服務層級時,請遵循相同的順序。

建議遵循此順序,以避免較低 SKU 的異地複寫次要資料庫發生超載,而必須在升級或降級程序期間重新植入的問題。

權限

容錯移轉群組的權限是透過 Azure 角色型存取控制 (Azure RBAC) 來管理

SQL 受控執行個體參與者角色的範圍設定為主要和次要受控執行個體的資源群組,足以在容錯移轉群組上執行所有管理操作。

下表提供最小必要權限的精細檢視,以及針對容錯移轉群組管理操作的個別最小必要範圍層級

管理操作 權限 Scope
建立/更新容錯移轉群組 Microsoft.Sql/locations/instanceFailoverGroups/write 主要和次要受控執行個體的資源群組
建立/更新容錯移轉群組 Microsoft.Sql/managedInstances/write 主要和次要受控執行個體
對容錯移轉群組進行容錯移轉 Microsoft.Sql/locations/instanceFailoverGroups/failover/action 主要和次要受控執行個體的資源群組
對容錯移轉群組進行強制容錯移轉 Microsoft.Sql/locations/instanceFailoverGroups/forceFailoverAllowDataLoss/action 主要和次要受控執行個體的資源群組
刪除容錯移轉群組 Microsoft.Sql/locations/instanceFailoverGroups/delete 主要和次要受控執行個體的資源群組

限制

建立新的容錯移轉群組時,請考慮下列限制:

  • 無法在相同 Azure 區域中的兩個執行個體之間建立容錯移轉群組。
  • 無論何時執行個體只能參與一個容錯移轉群組。
  • 無法在屬於不同 Azure 租用戶的兩個執行個體之間建立容錯移轉群組。
  • 在不同資源群組或訂用帳戶中的兩個執行個體之間建立容錯移轉群組,只有在使用 Azure PowerShell 或 REST API 時支援,而使用 Azure 入口網站 或 Azure CLI 時則不支援。 建立容錯移轉群組之後,即會在 Azure 入口網站中顯示,且在 Azure 入口網站中或使用 Azure CLI 時支援所有作業。 必須從次要執行個體初始化容錯移轉。
  • 如果所有資料庫的初始植入未在 7 天內完成,則建立容錯移轉群組會失敗,且所有成功複寫的資料庫都會從次要執行個體中刪除。
  • 目前不支援使用受控執行個體連結設定的執行個體建立容錯移轉群組。
  • 如果任何容錯移轉群組在執行個體集區中,就無法在執行個體之間建立。
  • 在執行完全移轉步驟之前,無法使用記錄重新執行服務(LRS)進行資料庫移轉至 Azure SQL 受控執行個體的資料庫無法新增至容錯移轉群組。

使用容錯移轉群組時,請考慮下列限制:

  • 無法重新命名容錯移轉群組。 您將需要刪除群組,並使用不同的名稱重新建立。
  • 容錯移轉群組只包含兩個受控執行個體。 不支援將其他執行個體新增至容錯移轉群組。
  • 系統會自動進行完整備份:
    • 在初始植入之前,可以明顯延遲初始植入程序的開始。
    • 容錯移轉之後,而且可以延遲或防止後續的容錯移轉。
  • 容錯移轉群組中的資料庫不支援資料庫重新命名。 您將需要暫時刪除容錯移轉群組,才能重新命名資料庫。
  • 系統資料庫不會複寫至容錯移轉群組中的次要執行個體。 因此,相依於系統資料庫 (例如伺服器登入和代理程式作業) 中物件的案例需要在次要執行個體上手動建立物件,並在主要執行個體上進行任何變更之後,手動保持同步。 唯一的例外是 SQL 受控執行個體的服務主要金鑰 (SMK),其會在建立容錯移轉群組期間自動複寫至次要執行個體。 不過,主要執行個體上的任何後續 SMK 變更都不會複寫至次要執行個體。 若要深入了解,請參閱如何啟用相依於系統資料庫中物件的案例
  • 對於容錯移轉群組內的執行個體,不支援將服務層級變更為下一代一般用途層級或從下一代一般用途層級變更為服務層級。 您必須先刪除容錯移轉群組,再修改任一複本,然後在變更生效後重新建立容錯移轉群組。
  • 容錯移轉群組中的 SQL 受控執行個體必須具有相同的更新原則,不過可以對容錯移轉群組內的執行個體變更更新原則

以程式設計方式管理容錯移轉群組

您也可以使用 Azure PowerShell、Azure CLI 和 REST API,以程式設計方式管理容錯移轉群組。 下表描述可用的命令集。 容錯移轉群組包含一組可管理的 Azure Resource Manager API,包括 Azure SQL 資料庫 REST APIAzure PowerShell Cmdlet。 這些 API 需要使用資源群組,並支援 Azure 角色型存取控制 (Azure RBAC)。 如需如何實作存取角色的詳細資訊,請參閱 Azure 角色型存取控制 (Azure RBAC)

Cmdlet 描述
New-AzSqlDatabaseInstanceFailoverGroup 此命令會建立容錯移轉群組,並同時在主要和次要執行個體上註冊
Set-AzSqlDatabaseInstanceFailoverGroup 修改容錯移轉群組的設定
Get-AzSqlDatabaseInstanceFailoverGroup 擷取容錯移轉群組的設定
Switch-AzSqlDatabaseInstanceFailoverGroup 觸發容錯移轉群組容錯移轉至次要執行個體
Remove-AzSqlDatabaseInstanceFailoverGroup 移除容錯移轉群組