Memulihkan Azure Blob menggunakan Azure CLI
Artikel ini menjelaskan cara memulihkan blob menggunakan Azure Backup.
Anda dapat memulihkan Azure Blobs ke point-in-time menggunakan pencadangan operasional dan cadangan vault untuk Azure Blobs melalui Azure CLI. Di sini, mari kita gunakan vault TestBkpVault
Backup yang ada , di bawah grup testBkpVaultRG
sumber daya dalam contoh.
Penting
Sebelum Anda memulihkan Azure Blobs menggunakan Azure Backup, lihat poin penting.
Untuk memulihkan cadangan blob, Anda perlu *mengambil rentang waktu yang valid untuk pencadangan operasional dan mengambil daftar titik pemulihan untuk cadangan vault.
Pilih tingkat cadangan:
Karena cadangan operasional untuk blob terus berlanjut, maka tidak ada titik yang berbeda untuk dipulihkan. Sebagai gantinya, kita perlu mengambil rentang waktu yang valid yang dapat memulihkan blob ke titik waktu. Dalam contoh ini, mari kita periksa rentang waktu yang valid untuk dipulihkan dalam waktu 30 hari terakhir.
Pertama, kita perlu mengambil ID instans cadangan yang relevan. Cantumkan semua instans cadangan dalam vault menggunakan perintah az dataprotection backup-instance list , lalu ambil instans yang relevan menggunakan perintah az dataprotection backup-instance show . Atau, untuk skenario dalam skala besar, Anda dapat mencantumkan instans cadangan di seluruh vault dan langganan menggunakan perintah 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
}
]
Setelah instans diidentifikasi, ambil rentang pemulihan yang relevan menggunakan perintah az dataprotection restorable-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"
}
Pilih tingkat cadangan:
Setelah Anda memperbaiki titik waktu pemulihan, ada beberapa opsi untuk dipulihkan.
Anda dapat memulihkan semua blob blok di akun penyimpanan dengan menggulungnya kembali ke titik waktu yang dipilih. Akun penyimpanan yang berisi data dalam jumlah besar atau menyaksikan churn tinggi mungkin membutuhkan waktu lebih lama untuk dipulihkan. Untuk memulihkan semua blob blok, gunakan perintah az dataprotection backup-instance restore initialize-for-data-recovery . Lokasi pemulihan dan ID sumber daya target akan sama dengan akun penyimpanan yang dilindungi.
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
Anda dapat menelusuri dan memilih hingga 10 kontainer untuk dipulihkan. Untuk memulihkan kontainer yang dipilih, gunakan perintah 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
Anda dapat memulihkan subset blob menggunakan kecocokan awalan. Anda dapat menentukan hingga 10 rentang leksikografis {i>blobblob
- Anda dapat menggunakan garis miring (/) untuk menguraikan nama kontainer dari awalan {i>blob
- Awal rentang yang ditentukan bersifat inklusif, namun rentang yang ditentukan bersifat eksklusif.
Pelajari selengkapnya tentang menggunakan awalan untuk memulihkan rentang blob.
Untuk memulihkan kontainer yang dipilih, gunakan perintah 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
Gunakan perintah az dataprotection backup-instance restore trigger untuk memicu pemulihan dengan permintaan yang disiapkan di atas.
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
Anda dapat melacak semua pekerjaan menggunakan perintah az dataprotection job list . Anda dapat mencantumkan semua pekerjaan dan mengambil detail pekerjaan tertentu.
Anda juga dapat menggunakan Az.ResourceGraph untuk melacak semua pekerjaan di semua vault Cadangan. Gunakan perintah az dataprotection job list-from-resourcegraph untuk mendapatkan pekerjaan yang relevan yang dapat berada di seluruh vault Backup apa pun.
az dataprotection job list-from-resourcegraph --datasource-type AzureBlob --operation Restore