Przywracanie obiektów blob platformy Azure do punktu w czasie przy użyciu interfejsu wiersza polecenia platformy Azure

W tym artykule opisano sposób przywracania obiektów blob do dowolnego punktu w czasie przy użyciu Azure Backup.

Ważne

Obsługa tworzenia kopii zapasowych i przywracania obiektów blob platformy Azure za pośrednictwem interfejsu wiersza polecenia jest dostępna w wersji zapoznawczej i jest dostępna jako rozszerzenie w wersji Az 2.15.0 lub nowszej. Rozszerzenie jest instalowane automatycznie po uruchomieniu poleceń az dataprotection . Dowiedz się więcej o rozszerzeniach.

Ważne

Przed przywróceniem obiektów blob platformy Azure przy użyciu Azure Backup zapoznaj się z ważnymi punktami.

Ten artykuł obejmuje następujące zagadnienia:

  • Przywracanie obiektów blob platformy Azure do punktu w czasie

  • Śledzenie stanu operacji przywracania

W przykładach odwołujemy się do istniejącego magazynu kopii zapasowych TestBkpVault w ramach testu grupy zasobówBkpVaultRG .

Przywracanie obiektów blob platformy Azure na koncie magazynu

Pobieranie prawidłowego zakresu czasu przywracania

Ponieważ operacyjna kopia zapasowa obiektów blob jest ciągła, nie ma odrębnych punktów do przywrócenia. Zamiast tego musimy pobrać prawidłowy zakres czasu, w którym można przywrócić obiekty blob do dowolnego punktu w czasie. W tym przykładzie sprawdźmy, czy w ciągu ostatnich 30 dni mają być przywracane prawidłowe zakresy czasu.

Najpierw należy pobrać odpowiedni identyfikator wystąpienia kopii zapasowej. Wyświetl listę wszystkich wystąpień kopii zapasowych w magazynie przy użyciu polecenia az dataprotection backup-instance list , a następnie pobierz odpowiednie wystąpienie za pomocą polecenia az dataprotection backup-instance show . Alternatywnie w przypadku scenariuszy na dużą skalę można wyświetlić listę wystąpień kopii zapasowych między magazynami i subskrypcjami przy użyciu polecenia az dataprotection backup-instance list-from-resourcegraph .

az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureBlob --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
[
  {
    "datasourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
    "extendedLocation": null,
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
    "identity": null,
    "kind": "",
    "location": "",
    "managedBy": "",
    "name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
    "plan": null,
    "properties": {
      "currentProtectionState": "ProtectionConfigured",
      "dataSourceInfo": {
        "baseUri": null,
        "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"
      },
      "dataSourceProperties": null,
      "dataSourceSetInfo": null,
      "datasourceAuthCredentials": 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"
    },
    "protectionState": "ProtectionConfigured",
    "resourceGroup": "rg-bv",
    "sku": null,
    "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
    "tags": null,
    "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
    "type": "microsoft.dataprotection/backupvaults/backupinstances",
    "vaultName": "TestBkpVault",
    "zones": null
  }
]

Po zidentyfikowaniu wystąpienia pobierz odpowiedni zakres odzyskiwania przy użyciu polecenia az dataprotection restoreable-time-range find .

az dataprotection restorable-time-range find --start-time 2021-05-30T00:00:00 --end-time 2021-05-31T00:00:00 --source-data-store-type OperationalStore -g testBkpVaultRG --vault-name TestBkpVault --backup-instances CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036
{
  "id": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
  "name": null,
  "properties": {
    "objectType": "AzureBackupFindRestorableTimeRangesResponse",
    "restorableTimeRanges": [
      {
        "endTime": "2021-05-31T00:00:00.0000000Z",
        "objectType": "RestorableTimeRange",
        "startTime": "2021-06-13T18:53:44.4465407Z"
      }
    ]
  },
  "systemData": null,
  "type": "Microsoft.DataProtection/backupVaults/backupInstances/findRestorableTimeRanges"
}

Przygotowywanie żądania przywrócenia

Po naprawieniu przywracania do punktu w czasie istnieje wiele opcji przywracania.

Przywracanie wszystkich obiektów blob do punktu w czasie

Za pomocą tej opcji można przywrócić wszystkie blokowe obiekty blob na koncie magazynu, cofając je z powrotem do wybranego punktu w czasie. Konta magazynu zawierające duże ilości danych lub monitorujące dużą liczbę zmian mogą trwać dłużej. Aby przywrócić wszystkie blokowe obiekty blob, użyj polecenia az dataprotection backup-instance restore initialize-for-data-recovery . Lokalizacja przywracania i identyfikator zasobu docelowego będą takie same jak chronione konto magazynu.

az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --target-resource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" --point-in-time 2021-06-02T18:53:44.4465407Z
{
  "object_type": "AzureBackupRecoveryTimeBasedRestoreRequest",
  "recovery_point_time": "2021-06-02T18:53:44.4465407Z.0000000Z",
  "restore_target_info": {
    "datasource_info": {
      "datasource_type": "Microsoft.Storage/storageAccounts/blobServices",
      "object_type": "Datasource",
      "resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
      "resource_location": "southeastasia",
      "resource_name": "CLITestSA",
      "resource_type": "Microsoft.Storage/storageAccounts",
      "resource_uri": ""
    },
    "object_type": "RestoreTargetInfo",
    "recovery_option": "FailIfExists",
    "restore_location": "southeastasia"
  },
  "source_data_store_type": "OperationalStore"
}
az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --target-resource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" --point-in-time 2021-06-02T18:53:44.4465407Z > restore.json

Przywracanie wybranych kontenerów

Korzystając z tej opcji, możesz przeglądać i wybierać maksymalnie 10 kontenerów do przywrócenia. Aby przywrócić wybrane kontenery, użyj polecenia az dataprotection backup-instance restore initialize-for-item-recovery .

az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --container-list container1 container2
{
  "object_type": "AzureBackupRecoveryTimeBasedRestoreRequest",
  "recovery_point_time": "2021-06-02T18:53:44.4465407Z.0000000Z",
  "restore_target_info": {
    "datasource_info": {
      "datasource_type": "Microsoft.Storage/storageAccounts/blobServices",
      "object_type": "Datasource",
      "resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
      "resource_location": "southeastasia",
      "resource_name": "CLITestSA",
      "resource_type": "Microsoft.Storage/storageAccounts",
      "resource_uri": ""
    },
    "object_type": "ItemLevelRestoreTargetInfo",
    "recovery_option": "FailIfExists",
    "restore_criteria": [
      {
        "max_matching_value": "container1-0",
        "min_matching_value": "container1",
        "object_type": "RangeBasedItemLevelRestoreCriteria"
      },
      {
        "max_matching_value": "container2-0",
        "min_matching_value": "container2",
        "object_type": "RangeBasedItemLevelRestoreCriteria"
      }
    ],
    "restore_location": "southeastasia"
  },
  "source_data_store_type": "OperationalStore"
}
az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --container-list container1 container2 > restore.json

Przywracanie kontenerów przy użyciu dopasowania prefiksu

Ta opcja umożliwia przywrócenie podzestawu obiektów blob przy użyciu dopasowania prefiksu. Można określić maksymalnie 10 zakresów leksykograficznych obiektów blob w ramach jednego kontenera lub w wielu kontenerach, aby przywrócić te obiekty blob do poprzedniego stanu w danym punkcie w czasie. Oto kilka rzeczy, o których należy pamiętać:

  • Możesz użyć ukośnika (/) do podkreślania nazwy kontenera z prefiksu obiektu blob.
  • Początek określonego zakresu jest włącznie, jednak określony zakres jest wyłączny.

Dowiedz się więcej na temat używania prefiksów do przywracania zakresów obiektów blob.

Aby przywrócić wybrane kontenery, użyj polecenia az dataprotection backup-instance restore initialize-for-item-recovery .

az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --from-prefix-pattern container1/text1 container2/text4 --to-prefix-pattern container1/text4 container2/text41
{
  "object_type": "AzureBackupRecoveryTimeBasedRestoreRequest",
  "recovery_point_time": "2021-06-02T18:53:44.4465407Z.0000000Z",
  "restore_target_info": {
    "datasource_info": {
      "datasource_type": "Microsoft.Storage/storageAccounts/blobServices",
      "object_type": "Datasource",
      "resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
      "resource_location": "southeastasia",
      "resource_name": "CLITestSA",
      "resource_type": "Microsoft.Storage/storageAccounts",
      "resource_uri": ""
    },
    "object_type": "ItemLevelRestoreTargetInfo",
    "recovery_option": "FailIfExists",
    "restore_criteria": [
       {
        "max_matching_value": "container1/text4",
        "min_matching_value": "container1/text1",
        "object_type": "RangeBasedItemLevelRestoreCriteria"
      },
      {
        "max_matching_value": "container2/text41",
        "min_matching_value": "container2/text4",
        "object_type": "RangeBasedItemLevelRestoreCriteria"
      }
    ],
    "restore_location": "southeastasia"
  },
  "source_data_store_type": "OperationalStore"
}
az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --from-prefix-pattern container1/text1 container2/text4 --to-prefix-pattern container1/text4 container2/text41 > restore.json

Wyzwalanie przywracania

Użyj polecenia az dataprotection backup-instance restore trigger , aby wyzwolić przywracanie przy użyciu żądania przygotowanego powyżej.

az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name TestBkpVault --backup-instance-name CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036 --restore-request-object restore.json

Zadanie śledzenia

Śledź wszystkie zadania przy użyciu polecenia az dataprotection job list . Możesz wyświetlić listę wszystkich zadań i pobrać szczegóły określonego zadania.

Możesz również użyć narzędzia Az.ResourceGraph do śledzenia wszystkich zadań we wszystkich magazynach usługi Backup. Użyj polecenia az dataprotection job list-from-resourcegraph , aby uzyskać odpowiednie zadanie, które może znajdować się w dowolnym magazynie usługi Backup.

az dataprotection job list-from-resourcegraph --datasource-type AzureBlob --operation Restore

Następne kroki

Macierz obsługi kopii zapasowej obiektów blob platformy Azure