設定 azure Cache for Redis 實例的被動異地複寫進階版

在本文中,您將瞭解如何使用 Azure 入口網站,在一組 Azure Cache for Redis 實例上設定被動異地複寫。

被動異地複寫會將兩個進階版層 Azure Cache for Redis 實例連結在一起,並建立 主動-被動 資料複寫關聯性。 主動-被動表示有一對快取、主要和次要快取已同步處理其資料。 但是,您只能寫入配對的一端,也就是主要 。 配對的另一端,次要快取是唯讀的。

比較 主動-被動 主動-主動 ,您可以在其中寫入配對的任一端,並與另一端同步處理。

使用被動異地複寫時,快取實例通常位於不同的 Azure 區域中,但不需要。 一個實例做為主要實例,另一個實例則做為次要實例。 主要會處理讀取和寫入要求,而主要複本會將變更傳播至次要複本。

容錯移轉不是自動的。 如需如何使用容錯移轉的詳細資訊,請參閱 起始從異地主要容錯移轉到異地次要資料庫

注意

被動異地複寫是設計成災害復原解決方案。

可用性範圍

基本、標準 Premium Enterprise、Enterprise Flash
可用的 No .是 Yes

被動異地複 寫僅適用于 Azure Cache for Redis 進階版層。 企業和企業 Flash 層也提供異地複寫,但這些層會使用稱為 主動異地複 寫的更進階版本。

異地複寫必要條件

若要設定兩個快取之間的異地複寫,必須符合下列必要條件:

  • 這兩個快取都是 進階版層 快取。
  • 這兩個快取都在相同的 Azure 訂用帳戶中。
  • 次要連結快取的大小與主要連結快取大小相同或快取大小較大。 若要使用異地容錯移轉,這兩個快取的大小必須相同。
  • 這兩個快取都會建立且處於執行中狀態。
  • 這兩個快取都執行相同版本的 Redis 伺服器。

注意

Azure 區域之間的資料傳輸會以標準 頻寬費率 收費。

異地複寫不支援某些功能:

  • 異地複寫不支援區域備援。
  • 異地複寫不支援持續性。
  • 具有多個複本的快取無法異地複寫。
  • 如果兩個快取都已啟用叢集且具有相同數目的分區,則支援叢集。
  • 支援相同虛擬網絡 (VNet) 中的快取。
  • 請注意,支援不同 VNet 中的快取。 如需詳細資訊,請參閱 我可以在 VNet 中使用異地複寫搭配快取嗎?

設定異地複寫之後,下列限制會套用至連結快取組:

  • 次要連結快取是唯讀的。 您可以從中讀取,但無法將任何資料寫入其中。 如果您選擇在異地主要與異地次要之間發生完整資料同步時從異地次要實例讀取,則異地次要實例會在完整資料同步完成之前,在任何 Redis 作業上擲回錯誤。 錯誤狀態為完整資料同步正在進行中。 此外,當異地主要或異地次要複本更新及某些重新開機案例時,就會擲回錯誤。 每當異地次要資料庫擲回這類錯誤時,應該建置從異地次要資料庫讀取的應用程式,以回復到異地主要複本。

  • 移除新增連結之前次要連結快取中的任何資料。 不過,如果稍後移除異地複寫,複寫的資料會保留在次要連結快取中。

  • 當快取連結時, 您無法調整 任一快取。

  • 如果快取已啟用叢集,則無法 變更分區 數目。

  • 您無法在任一個快取上啟用持續性。

  • 您可以從 任一個快取匯出

  • 您無法匯 入次要連結快取。

  • 在取消快取連結之前,您無法刪除連結快取或包含這些快取的資源群組。 如需詳細資訊,請參閱 當我嘗試刪除連結快取時,作業為何失敗?

  • 如果快取位於不同的區域,網路輸出成本會套用至跨區域移動的資料。 如需詳細資訊,請參閱 跨 Azure 區域複寫我的資料需要多少成本?

  • 容錯移轉不是自動的。 您必須從主要快取開始容錯移轉至次要連結快取。 如需如何使用容錯移轉的詳細資訊,請參閱 起始從異地主要容錯移轉到異地次要資料庫

  • 私人連結無法新增至已異地複寫的快取。 若要將私人連結新增至異地複寫快取:1。 取消連結異地複寫。 2. 新增 Private Link。 3. 最後,重新連結異地複寫。

  1. 若要將兩個快取連結在一起以進行異地複寫,請先從您想要成為主要連結快取之快取的 [資源] 功能表中選取 [異地複 寫]。 接下來,從工作窗格選取 [ 新增快取複寫] 連結

    Screenshot showing the cache's Geo-replication menu.

  2. [相容快取] 清單中選取您預期的次要快取 名稱。 如果您的次要快取未顯示在清單中,請確認 已符合次要快取的異地複寫必要條件 。 若要依區域篩選快取,請選取對應中的區域,只顯示 [相容 快取] 清單中的這些快 取。

    Screenshot showing compatible caches for linking with geo-replication.

    您也可以使用操作功能表來啟動連結程式或檢視次要快取的詳細資料。

    Screenshot showing the Geo-replication context menu.

  3. 選取 [連結 ] 將兩個快取連結在一起,然後開始複寫程式。

    Screenshot showing how to link caches for geo-replication.

  4. 您可以在 [資源] 功能表中,使用 異地複 寫來檢視複寫程式的進度。

    Screenshot showing the current Linking status.

    您也可以從主要和次要快取的 [資源] 功能表中,使用 [概觀 ] 來檢視連結狀態。

    Screenshot that highlights how to view the linking status for the primary and secondary caches.

    複寫程式完成後, 連結布建狀態 會變更為 [ 成功]。

    Screenshot showing cache linking status as Succeeded.

    主要連結快取在連結程式期間仍可供使用。 在連結程式完成之前,無法使用次要連結快取。

異地主要 URL

一旦連結快取,就會為每個一律指向異地主要快取的快取產生 URL。 如果容錯移轉是從異地主要複本起始至異地次要資料庫,URL 會維持不變,且基礎 DNS 記錄會自動更新,以指向新的異地主要複本。

Screenshot showing four URLs created by adding geo-replication.

顯示三個 URL:

  • 異地主要 URL 是 Proxy URL ,格式為 <cachename>.geo.redis.cache.windows.net 。 URL 一律指向異地複寫配對中的快取是目前的異地主要。
  • 目前地理主要快 取是目前為異地主要快取的直接位址。 位址 redis.cache.windows.net 不是 geo.redis.cache.windows.net 。 如果起始容錯移轉,則欄位中所列的位址會變更。
  • 目前異地次要 快取是目前為異地次要快取的直接位址。 位址 redis.cache.windows.net 不是 geo.redis.cache.windows.net 。 如果起始容錯移轉,則欄位中所列的位址會變更。

起始從異地主要複本容錯移轉到異地次要資料庫

透過選取,您可以觸發從異地主要複本容錯移轉至異地次要資料庫。

Screenshot of linked caches with Failover highlighted.

這會導致採取下列步驟:

  1. 異地次要快取會升階為異地主要快取。
  2. DNS 記錄會更新,以將異地主要 URL 重新導向至新的異地主要 URL。
  3. 舊的異地主要快取已降級為次要,並嘗試形成新異地主要快取的連結。

異地容錯移轉程式需要幾分鐘的時間才能完成。

設定在起始異地容錯移轉之前先檢查

起始容錯移轉時,異地主要和異地次要快取會交換。 如果新的異地主要資料庫設定與異地次要資料庫不同,它可能會為您的應用程式建立問題。

請務必檢查下列專案:

  • 如果您在任一快取中使用防火牆,請確定防火牆設定很類似,因此您沒有任何連線問題。
  • 請確定兩個快取都使用相同的埠和 TLS/SSL 設定
  • 異地主要和異地次要快取有不同的存取金鑰。 如果觸發容錯移轉,請確定您的應用程式可以更新其用來比對新異地主要存取金鑰的存取金鑰。 或者,使用 Microsoft Entra 權杖進行快取驗證 ,這可讓您針對異地主要和異地次要快取使用相同的驗證認證。

以最少的資料遺失進行容錯移轉

異地容錯移轉事件會在轉換期間引入資料不一致的情況,特別是當用戶端在容錯移轉程式期間維持與舊異地主要資料庫的連線時。 您可以使用下列秘訣,將規劃的異地容錯移轉事件中的資料遺失降到最低:

  • 檢查異地複寫資料同步位移計量。 計量是由目前的異地主要快取所發出。 此計量指出尚未複寫至異地主要複寫的資料量。 可能的話,只有在計量指出還剩不到 14 個位元組時,才起始容錯移轉。
  • CLIENT PAUSE在起始容錯移轉之前,請先在目前的異地主要複本中執行 命令。 執行 CLIENT PAUSE 會封鎖任何新的寫入要求,而是將逾時失敗傳回給 Azure Cache for Redis 用戶端。 命令 CLIENT PAUSE 需要以毫秒為單位提供逾時期間。 請確定已提供足夠的逾時期限,以允許進行容錯移轉。 將暫停值設定為大約 30 分鐘(1,800,000 毫秒)是開始的好位置。 您隨時可以視需要降低此數位。

不需要執行 CLIENT UNPAUSE 命令,因為新的異地主要複本會保留用戶端暫停。

注意

建議您在異地容錯移轉案例中使用 Microsoft Entra ID 型驗證 ,因為它會移除管理異地主要和異地次要快取之不同存取金鑰的困難。

  1. 若要移除兩個快取之間的連結並停止異地複寫,請從左側的 異地複 寫中選取 [取消連結快 取]。

    Screenshot showing how to unlink caches.

    當取消連結進程完成時,次要快取同時可供讀取和寫入使用。

注意

移除異地複寫連結時,來自主要連結快取的複寫資料會保留在次要快取中。

異地複寫常見問題

我可以搭配標準或基本層快取使用異地複寫嗎?

否,被動異地複寫只能在進階版層中使用。 企業和企業 Flash 層提供稱為作用中異地複 寫的更進階版本異地複 寫。

我的快取是否可用於連結或取消連結程式?

  • 主要連結快取會維持可用狀態,直到連結程式完成為止。
  • 在連結程式完成之前,無法使用次要連結快取。
  • 這兩個快取都會維持可用狀態,直到取消連結程式完成為止。

何時可以在起始容錯移轉之後寫入至新的異地主要伺服器?

起始容錯移轉程式時,您會看到 [刪除 ] 的連結布建狀態更新 ,這表示先前的連結正在清除。 完成之後,連結布建狀態會更新為 [建立]。 這表示新的異地主資料庫已啟動並執行,並嘗試重新建立與舊異地主要快取的異地複寫連結。 此時,您可以立即連線到新的異地主要快取實例以進行讀取和寫入。

是,有數個 計量可用來 協助追蹤異地複寫的狀態。 這些計量可在Azure 入口網站中使用。

  • 異地複寫狀況良好 會顯示異地複寫連結的狀態。 如果異地主要或異地次要快取關閉,連結會顯示為狀況不良。 這通常是因為標準修補作業,但也可能表示失敗情況。
  • 異地複寫連線延隔 會顯示異地主要和異地次要之間上次成功資料同步處理的時間。
  • 異地複寫資料同步位移 顯示尚未同步處理至異地次要快取的資料量。
  • 異地複寫完全同步事件已啟動 ,表示異地主要和異地次要快取之間已起始完整同步處理動作。 如果標準複寫無法跟上新寫入的數目,就會發生這種情況。
  • 異地複寫完整同步事件已完成 表示已完成完整同步處理動作。

另外還有一個 稱為「異地複寫儀表板 」的 預先建置 活頁簿,其中包含一個檢視中的所有異地複寫健康情況計量。 建議您使用此檢視,因為它會匯總僅從異地主要或異地次要快取實例發出的資訊。

否,使用被動異地複寫時,您只能將兩個快取連結在一起。 主動式異地複寫 最多可支援五個連結快取。

否,這兩個快取都必須位於相同的 Azure 訂用帳戶中。

是,只要次要連結快取大於主要連結快取。 不過,如果快取的大小不同,則無法使用容錯移轉功能。

是否可以使用異地複寫來啟用叢集?

是,只要兩個快取都有相同的分區數目。

我可以在 VNet 中使用異地複寫搭配快取嗎?

在大部分情況下,建議您使用透過 VNet 插入的 Azure Private Link。 如需詳細資訊, 請參閱從 VNet 插入式快取遷移至 Private Link 快 取。

雖然在技術上仍可在異地複寫快取時使用 VNet 插入,但建議使用 Azure Private Link。

重要

Azure Cache for Redis 建議使用 Azure Private Link,以簡化網路架構,並保護 Azure 中端點之間的連線。 您可以透過私人端點從虛擬網路連線到 Azure 快取實例,該端點會指派虛擬網路內子網中的私人 IP 位址。 Azure Private Links 提供于所有層,包括Azure 原則支援,以及簡化的 NSG 規則管理。 若要深入瞭解,請參閱 Private Link 檔 。 若要將 VNet 插入快取移轉至 Private Link,請參閱 從 VNet 插入式快取遷移至 Private Link 快 取。

如需使用 VNet 進行異地複寫支援的詳細資訊,請參閱 使用 VNet 插入搭配進階版快取進行 異地複寫。

Redis 異地複寫的複寫排程為何?

複寫是連續且非同步。 它不會在特定排程上發生。 對主要複本所做的所有寫入都是在次要複寫的瞬間和非同步複寫。

異地複寫複寫需要多久時間?

複寫是累加式、非同步和連續的,而且所花費的時間與跨區域的延遲並無太大差異。 在某些情況下,可能需要次要快取,才能從主要複本執行資料的完整同步處理。 在此情況下,複寫時間取決於許多因素,例如:主要快取上的負載、可用的網路頻寬,以及區域間延遲。 我們發現完整 53 GB 異地複寫配對的複寫時間可能介於 5 到 10 分鐘之間。 您可以使用 Azure 監視器中的計量來追蹤尚未複 Geo Replication Data Sync Offset 寫的資料量。

複寫復原點是否保證?

對於異地複寫模式中的快取,會停用持續性。 如果異地複寫配對未連結,例如客戶起始的容錯移轉,次要連結快取會將同步處理的資料保持在該時間點。 在這種情況下,不會保證任何復原點。

若要取得復原點, 請從任一快取匯出 。 您稍後 可以匯 入主要連結快取。

我可以使用 PowerShell 或 Azure CLI 來管理異地複寫嗎?

是,您可以使用 Azure 入口網站、PowerShell 或 Azure CLI 來管理異地複寫。 如需詳細資訊,請參閱 PowerShell 檔 Azure CLI 檔

跨 Azure 區域複寫我的資料需要多少成本?

當您使用異地複寫時,主要連結快取中的資料會複寫到次要連結快取。 如果兩個連結快取位於相同區域,則資料傳輸不收費。 如果兩個連結快取位於不同的區域,資料傳輸費用是跨任一區域移動資料的網路輸出成本。 如需詳細資訊,請參閱 頻寬定價詳細資料

當我嘗試刪除連結快取時,作業為何會失敗?

在您移除異地複寫連結之前,無法刪除異地複寫快取及其資源群組。 如果您嘗試刪除包含一或兩個連結快取的資源群組,則會刪除資源群組中的其他資源,但資源群組會保持 deleting 狀態,而資源群組中的任何連結快取都會維持在 running 狀態中。 若要完全刪除資源群組及其內的連結快取,請取消連結快取,如移除異地複寫連結 中所述

我應該針對次要連結快取使用哪個區域?

一般而言,建議您讓快取存在於與存取快取的應用程式相同的 Azure 區域中。 針對具有個別主要和後援區域的應用程式,我們建議您的主要和次要快取存在於這些相同區域中。 如需配對區域的詳細資訊,請參閱 最佳做法 – Azure 配對區域

是否可以設定具有異地複寫的防火牆?

是,您可以使用異地複寫來設定 防火牆 。 若要讓異地複寫與防火牆一起運作,請確定次要快取的 IP 位址已新增至主要快取的防火牆規則。 不過,如果在快取上停用公用網路存取,且只啟用私人端點,則不支援在快取上使用防火牆。

下一步

深入瞭解 Azure Cache for Redis 功能。