分享方式:


將 Azure Cosmos DB 帳戶從定期遷移至連續備份模式

適用於:NoSQL MongoDB Gremlin 桌子

可以使用 Azure 入口網站CLIPowerShellResource Manager 範本將具有定期模式備份原則的 Azure Cosmos DB 帳戶移轉至連續模式。 從定期遷移至連續模式是單向遷移,無法復原。 從定期移轉至連續模式之後,您適用連續模式的優點。

以下是遷移至連續模式的主要原因:

  • 能夠使用 Azure 入口網站、CLI 或 PowerShell 進行自助還原。
  • 能夠在過去 30 天或 7 天的時間範圍內,以秒的時間細微性進行還原。
  • 能夠確保備份在一段期間內的分區或分割區索引鍵範圍之間保持一致。
  • 能夠在刪除或修改容器、資料庫或完整帳戶時還原。
  • 能夠選擇容器、資料庫或帳戶上的事件,以及決定何時起始還原。

注意

移轉功能只限單向,且是無法復原的動作。 這表示,當您從定期模式移轉至連續模式之後,就無法切換回定期模式。

只有在下列條件成立時,您才能將帳戶移轉至連續備份模式。 移轉您的帳戶之前,也請參閱時間點還原限制

  • 如果帳戶類型為 API for NoSQL、API for Table、Gremlin 或 API for MongoDB。
  • 帳戶具有單一寫入區域。
  • 如果帳戶從未針對容器停用 Synapse Link,則為 。

如果帳戶使用客戶自控金鑰,則必須在金鑰保存庫存取原則中宣告受控識別 (系統指派或使用者指派的),並且必須將其設定為帳戶的預設身分識別。

權限

若要執行移轉,您需要待移轉帳戶的 Microsoft.DocumentDB/databaseAccounts/write 權限。

移轉後的定價

將您的帳戶移轉至連續備份模式之後,其成本可能會與定期備份模式有所不同。 選擇 30 天層級還是 7 天層級也會影響備份的成本。 若要深入了解,請參閱連續備份模式定價

使用入口網站移轉

請使用下列步驟將您的帳戶從定期備份移轉至連續備份模式:

  1. 登入 Azure 入口網站

  2. 導覽至 Azure Cosmos DB 帳戶,並開啟 [備份和還原] 窗格。 選取 [備份原則] 索引標籤,然後選取 [變更]。 選擇目標連續模式之後,請選取 [儲存]

    使用 Azure 入口網站 移轉至連續模式

  3. 進行移轉時,快顯視窗會顯示「正在更新備份原則設定」。 如果您選取該通知,您可能會在帳戶概觀上看到帳戶層級顯示為 [更新中],且備份原則顯示為 [移轉中]。 完成後,備份原則會切換至所選的連續模式層。 移轉時間取決於您帳戶中的資料大小。

    檢查從 Azure 入口網站 移轉的狀態

使用 Powershell 進行移轉

  1. 安裝最新版本的 Azure PowerShell 或任何高於 6.2.0 的版本。

  2. 若要使用 Continous7Days 模式來進行佈建或移轉,您必須使用 cosmosdb 擴充功能的預覽版。 使用 Install-Module -Name Az.CosmosDB -AllowPrerelease

  3. 接下來,執行下列步驟:

    1. 連線至您的 Azure 帳戶:

      Connect-AzAccount
      
    2. 將您的帳戶從定期模式移轉至使用 continuous30days 層級或 continuous7days 天的連續備份模式。 如果未提供層級值,則會採用 continuous30days

      Update-AzCosmosDBAccount ` 
         -ResourceGroupName "myrg" ` 
         -Name "myAccount" `
         -BackupPolicyType "Continuous"
      
         Update-AzCosmosDBAccount ` 
         -ResourceGroupName "myrg" ` 
         -Name "myAccount" `
         -BackupPolicyType "Continuous" `
         -ContinuousTier "Continuous7Days"
      

使用 CLI 移轉

  1. 安裝最新版的 Azure CLI:
  • 如果您尚未安裝 Azure CLI,請參閱安裝 Azure CLI。 或者,您也可以從 Azure 入口網站使用 Azure Cloud Shell。
  1. 登入您的 Azure 帳戶,並執行下列命令將您的帳戶移轉至連續模式:

    az login
    
  2. 將帳戶移轉至 continuous30dayscontinuous7days 層級。 如果未提供層級值,則會採用 continuous30days

    az cosmosdb update -n <myaccount> -g <myresourcegroup> --backup-policy-type continuous
    
    az cosmosdb update -g "my-rg" -n "my-continuous-backup-account" --backup-policy-type "Continuous" --continuous-tier "Continuous7Days"
    
  3. 順利完成移轉之後,輸出會顯示 backupPolicy 物件,其中包含值為 Continuoustype 屬性。

     {
       "apiProperties": null,
       "backupPolicy": {
            "continuousModeProperties": {
                    "tier": "Continuous7Days"
            },
            "migrationState": null,
            "type": "Continuous"
       },
          …
     }
    

檢查移轉狀態

執行下列命令,並檢查 backupPolicy 物件的 statustargetType 屬性。 開始移轉之後,狀態會顯示為「進行中」

az cosmosdb show -n "myAccount" -g "myrg"

使用 PowerShell 命令檢查移轉狀態

當移轉完成時,備份類型會變更為 [連續],並顯示所選的層級。 如果未提供層級,則層級會設定為 Continuous30Days。 再次執行相同的命令以檢查狀態:

az cosmosdb show -n "myAccount" -g "myrg"

移轉完成後,備份類型會變更為連續

使用 Resource Manager 範本從定期模式移轉至連續模式

若要使用 ARM 範本移轉至連續備份模式,請尋找範本的 [backupPolicy] 區段,然後更新 type 屬性。 例如,如果您的現有範本具有類似下列 JSON 物件的備份原則:

"backupPolicy": {
   "type": "Periodic",
   "periodicModeProperties": {
   "backupIntervalInMinutes": 240,
   "backupRetentionIntervalInHours": 8
   }
}

將其取代為下列 JSON 物件:

"backupPolicy": { 
   "type": "Continuous", 
   "continuousModeProperties": { 
      "tier": "Continuous7Days" 
    } 
} 

接下來,使用 Azure PowerShell 或 CLI 來部署範本。 下列範例示範如何使用 CLI 命令來部署範本:

az deployment group create -g <ResourceGroup> --template-file <ProvisionTemplateFilePath>

變更連續模式層級

您可以在 Azure PowerShell、Azure CLI 或 Azure 入口網站中,進行 Continuous30DaysContinous7Days 之間的切換。

在指定 Azure Cosmos DB 帳戶的入口網站中,選擇 [時間點還原] 窗格,再選取 [備份原則模式] 旁的 [變更] 連結,以顯示 [連續 (30 天)] 或 [連續 (7 天)] 的選項。 選擇必要的目標,然後選取 [儲存]

用來選取連續模式階層之對話框的螢幕快照。

下列 Azure CLI 命令說明如何將現有帳戶切換至 Continous7Days

az cosmosdb update \ 
    --resource-group "my-rg" \ 
    --name "my-continuous-backup-account" \ 
    --backup-policy-type "Continuous" \ 
    --continuous-tier "Continuous7Days" 

下列 Azure PowerShell 命令說明如何將現有帳戶切換至 Continous7Days

Update-AzCosmosDBAccount ` 
    -ResourceGroupName "myrg" ` 
    -Name "myAccount" `
    -BackupPolicyType Continuous `
    -ContinuousTier Continuous7Days

您也可以透過與使用 Azure CLI 和 Azure PowerShell 時類似的方法來使用 ARM 範本。

注意

從 30 天變更為 7 天的層級時,還原超過 7 天歷史的能力會立即無法使用。 從 7 天變更為 30 天的層級時,並無法立即進行超過 7 天的還原。 您可以從可透過 Azure PowerShell 或 Azure CLI 取得的帳戶中繼資料,中擷取所能還原的最早時間。 在 7 天與 30 天的層級之間進行切換時,所受到的價格影響也會立即顯示。

移轉期間和之後的預期情況為何?

從定期模式移轉至連續模式時,您無法執行任何控制平面作業來執行帳戶層級的更新或刪除。 例如,移轉進行時無法執行新增或移除區域、帳戶容錯移轉、更新備份原則等作業。 移轉的時間取決於您帳戶中的資料大小和區域數目。 只有在成功完成移轉後,才能在已移轉的帳戶上成功執行還原動作。

您可以在移轉完成後還原您的帳戶。 如果在下午 1:00 (PST) 完成移轉,您可以執行從下午 1:00 (PST) 開始的時間點還原。

常見問題集

移轉只能在帳戶層級上進行嗎?

是。

哪些帳戶可作為備份移轉的目標?

目前,具有共用、佈建或自動調整佈建輸送量的單一寫入區域的 API for NoSQL、API for Table、Gremlin API 和 API for MongoDB 帳戶支援移轉。

不支援使用多寫入區域啟用的帳戶進行移轉。

目前,已啟用 Synapse Link 的帳戶已針對一或多個集合停用 Synapse Link,無法移轉至連續備份。

移轉是否需要時間? 一般需要多久時間?

移轉所需時間變化不定,時間長短極大程度取決於帳戶中的資料大小與區域數目。 您可以使用 Azure CLI 或 PowerShell 命令取得移轉狀態。 如果是具有數十 TB 資料的大型帳戶,移轉可能需要幾天的時間才能完成。

移轉是否會造成任何可用性影響/中斷?

不會,移轉作業會在背景進行。 因此,用戶端要求不會受到影響。 不過,我們需要在移轉期間執行某些後端作業,而且如果帳戶的負載過重,則可能需要額外的時間。

如果移轉失敗,會發生什麼事? 我仍會取得定期備份,還是會取得連續備份?

移轉程序開始後,帳戶就會啟用為連續模式。 如果移轉失敗,您必須再次起始移轉,直到成功為止。

如何還原到移轉之前/期間/之後的時間戳記?

假設您已在 t1 開始進行移轉,並在 t5 時完成,則您無法使用 t1t5 之間的還原時間戳記。

另外,再假設您的帳戶現在處於連續模式。 若要還原至 t5 之後的時間,請使用 Azure 入口網站、CLI 或 PowerShell 來執行還原作業,情況就和連續帳戶平時的處理方式一樣。 這項自助式還原要求只能在完成移轉之後完成。

若要還原至 t1 之前的時間,您可以開啟支援票證,情況就和定期備份帳戶平時的處理方式一樣。 移轉之後,您最多可以有 30 天的時間執行定期還原。 在這 30 天內,您可以根據移轉前的帳戶備份保留/間隔來進行還原。 例如,如果備份設定為以 1 小時的間隔保留 24 個複本,則您可以還原至 (t1 – 24 hours)t1 之間的任何時間。

移轉期間會封鎖哪些帳戶層級控制平面作業?

在移轉期間,新增/移除區域、容錯移轉、變更備份原則以及導致資料移動的任何輸送量變更等作業都會遭到封鎖。

如果因為某些基礎問題造成移轉失敗,在重試並順利完成移轉之前,控制平面作業仍會遭到封鎖嗎?

失敗的移轉不會封鎖任何控制平面作業。 如果移轉失敗,建議您先重試直到成功,然後再執行任何其他控制平面作業。

是否可以取消移轉?

無法取消移轉,因為移轉不是可逆作業。

是否有工具可協助根據資料使用量和區域數量來預估移轉時間?

沒有可預估時間的工具。 我們的測試和規模執行指出,具有 1 TB 資料的單一區域帳戶大約需要 90 分鐘的時間。

若為多區域帳戶,資料大小總計的計算方式為 Number_of_regions * Data_in_single_region

既然連續備份模式現已正式發行,您還會建議還原帳戶的複本嗎? 您是否會建議在決定移轉生產帳戶之前,先在複本上嘗試進行移轉嗎?

建議您測試連續備份模式功能,在移轉實際執行帳戶之前了解其是否如預期般運作。 移轉是不可逆的單向作業。

下一步

若要深入了解連續備份模式,請參閱下列文章: