Azure CLI kullanarak depolama hesabındaki Azure Bloblarını yedekleme
Bu makalede, Azure CLI kullanarak Azure Bloblarını yedekleme açıklanmaktadır. Artık Azure Backup kullanarak depolama hesaplarınızdaki blok bloblarını korumak için işlemsel ve kasalı yedeklemeler gerçekleştirebilirsiniz. Rest API kullanarak yedeklemeyi de yapılandırabilirsiniz.
Azure Blob bölgeleri kullanılabilirliği, desteklenen senaryolar ve sınırlamalar hakkında bilgi için bkz . destek matrisi.
Başlamadan önce
Başlamadan önce önkoşullara ve destek matrislerine bakın.
Backup kasası oluşturma
Yedekleme kasası, Azure'da PostgreSQL için Azure Veritabanı sunucuları ve bir depolama hesabında ve Azure Disklerinde bloblar gibi Azure Backup'ın desteklediği daha yeni iş yükleri için yedekleme verilerini depolayan bir depolama varlığıdır. Yedekleme kasaları, yedekleme verilerinizi düzenlemeyi kolaylaştırırken yönetim ek yükünü de en aza indirir. Yedekleme kasaları, yedekleme verilerinin güvenliğini sağlamaya yardımcı olmak için gelişmiş özellikler sağlayan Azure Resource Manager modelini temel alır.
Backup kasası oluşturmadan önce kasadaki verilerin depolama yedekliliğini seçin. Ardından bu depolama yedekliliği ve konumuyla Backup kasasını oluşturmaya devam edin. Bu makalede westus bölgesinde testBkpVaultRG kaynak grubu altında bir Backup kasası TestBkpVault oluşturacağız. Bir Backup kasası oluşturmak için az dataprotection vault create komutunu kullanın. Backup kasası oluşturma hakkında daha fazla bilgi edinin.
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"
}
Önemli
Kasanın Yedekleme depolama yedekliliğini görmenize rağmen, yedeklilik blobların işletimsel yedeklemesi için geçerli değildir. Bunun nedeni yedeklemenin yerel olması ve Backup kasasında hiçbir verinin depolanmamış olmasıdır. Burada Backup kasası, depolama hesaplarınızdaki blok bloblarının korumasını yönetmenize yardımcı olan yönetim varlığıdır.
Kasa oluşturduktan sonra bir depolama hesabında Azure Bloblarını korumak için bir Yedekleme ilkesi oluşturalım.
Yedekleme ilkesi oluşturma
Azure CLI kullanarak Azure Blobları için işletimsel yedekleme ve kasalı yedekleme için bir yedekleme ilkesi oluşturabilirsiniz.
Bir yedekleme katmanı seçin:
İlkeyi oluşturmadan ve Azure Blobları için yedeklemeleri yapılandırmadan önce önkoşullara bakın.
Azure Blob yedeklemesi için yedekleme ilkesinin iç bileşenlerini anlamak için az dataprotection backup-policy get-default-policy-template komutunu kullanarak ilke şablonunu alın. Bu komut, belirli bir veri kaynağı türü için varsayılan ilke şablonunu döndürür. Yeni bir ilke oluşturmak için bu ilke şablonunu kullanın.
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"
}
]
}
İlke şablonu yalnızca bir yaşam döngüsünden oluşur (yedeklemenin ne zaman silineceğine/kopyalandığına/taşıneceğine karar verir). Bloblar için operasyonel yedekleme doğası gereği sürekli olduğundan yedeklemeleri gerçekleştirmek için bir zamanlamaya ihtiyacınız yoktur.
"policyRules": [
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P30D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
Not
Uzun süre geri yükleme işlemi, geri yükleme işlemlerinin tamamlanmasının daha uzun sürmesine neden olabilir. Ayrıca, bir veri kümesini geri yüklemek için geçen süre, geri yükleme döneminde yapılan yazma ve silme işlemlerinin sayısına bağlıdır. Örneğin, günde 3.000 nesnenin eklendiği ve günde 1.000 nesnenin silindiği bir milyon nesne içeren bir hesabın geçmişteki 30 günlük bir noktaya geri yüklenmesi yaklaşık iki saat gerektirir.
Bu değişiklik oranına sahip bir hesap için saklama süresi ve geçmişte 90 günden fazla geri yükleme önermiyoruz.
İlke JSON gerekli tüm değerleri aldıktan sonra az dataprotection backup-policy create komutunu kullanarak ilke nesnesinden yeni bir ilke oluşturmaya devam edin.
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"
}
Yedeklemeyi yapılandırma
Kasa ve ilke oluşturulduktan sonra, bir depolama hesabındaki tüm Azure Bloblarını korumak için göz önünde bulundurmanız gereken iki kritik nokta vardır.
- Önemli varlıklar
- İzinler
Önemli varlıklar
Korunacak blobları içeren depolama hesabı: Korunacak blobları içeren depolama hesabının Azure Resource Manager kimliğini getirin. Bu, depolama hesabının tanımlayıcısı olarak görev yapacaktır. Kaynak grubu blobrg altında, Güneydoğu Asya bölgesinde bulunan farklı bir abonelikte CLITestSA adlı bir depolama hesabı örneği kullanacağız.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
Yedekleme kasası: Yedekleme kasası, depolama hesabında bulunan bloblarda yedeklemeleri etkinleştirmek için depolama hesabında izinler gerektirir. Kasanın sistem tarafından atanan yönetilen kimliği, bu tür izinlerin atanması için kullanılır.
İzin atama
Azure RBAC aracılığıyla oluşturulan kasaya (kasa MSI ile temsil edilir) ve ilgili depolama hesabına birkaç izin atamanız gerekir. Bunlar Portal veya PowerShell aracılığıyla gerçekleştirilebilir. tüm ilgili izinler hakkında daha fazla bilgi edinin.
Blob yedeklemeyi yapılandırma isteğini hazırlama
Tüm ilgili izinler ayarlandıktan sonra aşağıdaki komutları çalıştırarak yedeklemeyi yapılandırın:
az dataprotection backup-instance initialize komutunu kullanarak ilgili kasayı, ilkeyi, depolama hesabını kullanarak ilgili isteği hazırlayın.
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
az dataprotection backup-instance create komutunu kullanarak isteği gönderin.
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" }
Önemli
Blob yedeklemesi için bir depolama hesabı yapılandırıldıktan sonra değişiklik akışı ve silme kilidi gibi birkaç özellik etkilenir. Daha fazla bilgi edinin.
Yedekleme örneğini güncelleştirme
Yedeklemeyi yapılandırdıktan sonra, bir yedekleme örneğiyle ilişkili ilkeyi değiştirebilirsiniz. Kasalı yedeklemeler için, yedekleme için seçilen kapsayıcıları da değiştirebilirsiniz.
Yedekleme örneğini güncelleştirmek için aşağıdaki komutu çalıştırın:
- az dataprotection backup-instance validate-for-backup komutunu kullanarak yedekleme örneğinin yedeklemeyi yapılandırmaya hazır olup olmadığını doğrulayın. Yedekleme örneği hazır değilse komut başarısız olur.
- az dataprotection backup-instance güncelleştirmesini kullanarak Azure Bloblarını yedeklemek için kullanılan Yedekleme ilkesini değiştirin. İlgili yedekleme öğesini ve yeni yedekleme ilkesini belirtin.