Aracılığıyla paylaş


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.

Kasayı oluşturduktan sonra, bir depolama hesabındaki 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 bir yedekleme ilkesinin iç bileşenlerini anlamak amacıyla az dataprotection backup-policy get-default-policy-template komutunu kullanarak ilke şablonunu edinin. 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üreli geri yükleme, 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 Azure BLOB'larının tamamını korumak için dikkate almanı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. Kasaya sistem tarafından atanan yönetilen kimlik, bu tür izinleri atamak 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:

  1. az dataprotection backup-instance initialize komutunu kullanarak, ilgili kasayı, ilkeyi ve 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
    
  2. az dataprotection backup-instance create komutunu kullanarak talebi 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

Depolama hesabı blob yedeklemesi için yapılandırıldığında, değişiklik beslemesi ve silme kilidi gibi bazı özellikler 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ı yedeklemelerde, yedek almak 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:

  1. 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.
  2. Azure Blobs'u yedeklemek için kullanılan Yedekleme ilkesini, az dataprotection backup-instance update komutunu kullanarak değiştirin. İlgili yedekleme öğesini ve yeni yedekleme ilkesini belirtin.

Sonraki adımlar

Azure CLI kullanarak Azure Bloblarını geri yükleyin.

Azure portalını, Azure PowerShell'i, REST API'yi kullanarak Azure Backup ile Azure Bloblarını geri yükleyin.