共用方式為


使用 Azure CLI 備份儲存體帳戶中的 Azure Blob

本文描述如何使用 Azure CLI 來備份 Azure Blob。 您現在可以執行操作保存庫的備份,以使用 Azure 備份來保護儲存體帳戶中的區塊 Blob。

如需 Azure Blob 區域可用性、支援案例和限制的相關資訊,請參閱支援矩陣

在您開始使用 Intune 之前

開始之前,請參閱必要條件支援矩陣

建立備份保存庫

備份保存庫是 Azure 中的儲存體實體,可儲存 Azure 備份所支援各種較新工作負載的備份資料,例如適用於 PostgreSQL 的 Azure 資料庫伺服器,以及儲存體帳戶中的 Blob 和 Azure 磁碟。 保存庫可讓您輕鬆組織備份資料,同時可減輕管理負擔。 備份保存庫會以 Azure 的 Azure Resource Manager 模型為基礎,可提供增強功能來協助保護備份資料。

建立備份保存庫之前,請在保存庫中選擇資料的儲存體備援。 然後,繼續使用該儲存體備援和位置來建立備份保存庫。 在本文中,我們會在 westus 中的資源群組 testBkpVaultRG 下,建立備份保存庫 TestBkpVault。 使用 az dataprotection vault create 命令來建立備份保存庫。 深入了解建立備份保存庫

az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"

{
  "eTag": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
  "identity": {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "SystemAssigned"
  },
  "location": "westus",
  "name": "TestBkpVault",
  "properties": {
    "provisioningState": "Succeeded",
    "storageSettings": [
      {
        "datastoreType": "VaultStore",
        "type": "LocallyRedundant"
      }
    ]
  },
  "resourceGroup": "testBkpVaultRG",
  "systemData": null,
  "tags": null,
  "type": "Microsoft.DataProtection/backupVaults"
}

重要

雖然您會看到保存庫的備份儲存體備援,但該備援並不適用於 Blob 的作業備份。 這是由於備份本質上屬於本機,且不會在備份保存庫中儲存任何資料。 此處的備份保存庫為管理實體,可協助您管理儲存體帳戶中區塊 Blob 的保護。

建立保存庫後,現在來建立備份原則,以保護儲存體帳戶中的 Azure Blob。

建立備份原則

您可以使用 Azure CLI 為 Azure Blob 建立操作備份保存庫備份的備份原則。

選擇備份階層

建立原則並設定 Azure Blob 的備份之前,請先參閱必要條件

若要了解 Azure Blob 備份的備份原則內部元件,請使用 az dataprotection backup-policy get-default-policy-template 命令來擷取原則範本。 此命令會傳回指定資料來源類型的預設原則範本。 使用此原則範本來建立新的原則。

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob

{
  "datasourceTypes": [
    "Microsoft.Storage/storageAccounts/blobServices"
  ],
  "name": "BlobPolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

此原則範本僅由生命週期所組成 (其決定何時刪除/複製/移動備份)。 由於 Blob 的作業備份本質上是連續的,因此您不需要排程執行備份。

"policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]

注意

若還原期間較長,可能會導致還原作業需要較久時間才能完成。 此外,還原一組資料所需的時間,取決於在還原期間所進行的寫入和刪除作業數目。 例如,假設有個帳戶包含一百萬個物件,而且每日會新增 3,000 個物件並刪除 1,000 個物件,則大約需要兩小時,才能還原至過去 30 天的某個時間點。

對於具有此變動率的帳戶,不建議保留期間和還原超過前 90 天。

一旦原則 JSON 具有所有必要值,請繼續使用 az dataprotection backup-policy create 命令,從原則物件建立新的原則。

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n BlobBackup-Policy --policy policy.json

{
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
    "name": "BlobBackup-Policy",
    "properties": {
      "datasourceTypes": [
        "Microsoft.Storage/storageAccounts/blobServices"
      ],
      "objectType": "BackupPolicy",
      "policyRules": [
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P2D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "OperationalStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        }
      ]
    },
    "resourceGroup": "testBkpVaultRG",
    "systemData": null,
    "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
  }

設定備份

建立保存庫和原則後,您必須考慮兩項重點,以便保護儲存體帳戶內的所有 Azure Blob。

  • 主要實體
  • 權限

主要實體

  • 包含所要保護 Blob 的儲存體帳戶:擷取包含所要保護 Blob 儲存體帳戶的 Azure Resource Manager 識別碼。 這將作為儲存體帳戶的識別碼。 舉名稱為 CLITestSA 的儲存體帳戶為例,該帳戶位於東南亞區域不同訂用帳戶中的資源群組 blobrg

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • 備份保存庫:備份保存庫需要儲存體帳戶的權限,才能在儲存體帳戶內現存的 Blob 上啟用備份。 您會使用保存庫的系統指派的受控識別來指派這類權限。

指派權限

您必須透過 Azure RBAC,將一些權限指派給所建立的保存庫 (以保存庫 MSI 表示) 及相關的儲存體帳戶。 您可以透過入口網站或 PowerShell 來執行這些作業。 深入了解所有相關的權限

準備要求來設定 blob 備份

設定所有相關權限之後,請執行下列命令來設定 Blob 備份:

  1. 使用 az dataprotection backup-instance initialize 命令,透過相關保存庫、原則、儲存體帳戶來準備相關要求。

    az dataprotection backup-instance initialize --datasource-type AzureBlob  -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
    
  2. 使用 az dataprotection backup-instance create 命令來提交要求。

    az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
    
    {
        "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "properties": {
          "currentProtectionState": "ProtectionConfigured",
          "dataSourceInfo": {
            "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
            "objectType": "Datasource",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
            "resourceLocation": "southeastasia",
            "resourceName": "CLITestSA",
            "resourceType": "Microsoft.Storage/storageAccounts",
            "resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
          },
          "dataSourceSetInfo": null,
          "friendlyName": "CLITestSA",
          "objectType": "BackupInstance",
          "policyInfo": {
            "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
            "policyParameters": {
              "dataStoreParametersList": [
                {
                  "dataStoreType": "OperationalStore",
                  "objectType": "AzureOperationalStoreParameters",
                  "resourceGroupId": ""
                }
              ]
            },
            "policyVersion": ""
          },
          "protectionErrorDetails": null,
          "protectionStatus": {
            "errorDetails": null,
            "status": "ProtectionConfigured"
          },
          "provisioningState": "Succeeded"
        },
        "resourceGroup": "testBkpVaultRG",
        "systemData": null,
        "type": "Microsoft.DataProtection/backupVaults/backupInstances"
      }
    

重要

為 Blob 備份設定儲存體帳戶之後,有一些功能 (例如變更摘要和刪除鎖定) 會受到影響。 深入了解

更新備份實例

設定備份之後,您可以變更與備份實例相關聯的原則。 針對保存庫備份,您也可以變更為備份選取的容器。

若要更新備份實例,請執行下列命令:

  1. 使用 az dataprotection backup-instance validate-for-backup 命令來驗證備份實例是否已準備好設定備份 。 如果備份實例尚未就緒,命令就會失敗。
  2. 使用 az dataprotection backup-instance update 變更用於備份 Azure Blob 的備份原則。 指定相關的備份項目和新的備份原則。

下一步

使用 Azure CLI 來還原 Azure Blob