Azure PowerShell kullanarak depolama hesabındaki tüm Azure bloblarını yedekleme

Bu makalede, Azure PowerShell kullanarak bir depolama hesabı içindeki tüm Azure bloblarının nasıl yedeklediği açıklanı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ölgesinin kullanılabilirliği, desteklenen senaryolar ve sınırlamalar hakkında bilgi için bkz . destek matrisi.

Önemli

Azure blobları için destek Az 5.9.0 sürümünde sağlanır.

Başlamadan önce

Başlamadan önce önkoşullara ve destek matrislerine bakın.

Backup kasası oluşturma

Backup kasası, Azure'da PostgreSQL için Azure Veritabanı sunucuları ve Azure blobları gibi Azure Backup'ın desteklediği daha yeni iş yükleri için yedekleme verilerini tutan 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.

Yedekleme kasası oluşturmadan önce kasadaki verilerin depolama yedekliliğini seçin. Ardından depolama yedekliliği ve konumuna sahip yedekleme kasasını oluşturmaya devam edin. Bu makalede, testBkpVaultRG kaynak grubu altında westus bölgesinde TestBkpVault adlı bir yedekleme kasası oluşturacağız. Bir yedekleme kasası oluşturmak için New-AzDataProtectionBackupVault komutunu kullanın. Backup kasası oluşturma hakkında daha fazla bilgi edinin.

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore

New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag                :
Id                  : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity            : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId    :
IdentityType        :
Location            : westus
Name                : TestBkpVault
ProvisioningState   : Succeeded
StorageSetting      : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData          : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag                 : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type                : Microsoft.DataProtection/backupVaults

Kasa oluşturulduktan sonra Azure bloblarını korumak için bir yedekleme ilkesi oluşturalım.

Önemli

Kasanın Yedekleme depolama yedekliliğini görmenize rağmen, yedeklemenin doğası gereği yerel olması ve Backup kasasında herhangi bir veri depolanmaması nedeniyle, bu yedeklilik blobların operasyonel yedeklemesine uygulanmaz. Burada yedekleme kasası, depolama hesaplarınızdaki blok bloblarının korumasını yönetmenize yardımcı olan yönetim varlığıdır.

Yedekleme ilkesi oluşturma

Bir yedekleme katmanı seçin:

Önemli

İlkeyi oluşturmaya ve Azure blobları için yedeklemeleri yapılandırmaya devam etmeden önce bu bölümü okuyun.

Azure blob yedeklemesi için yedekleme ilkesinin iç bileşenlerini anlamak için Get-AzDataProtectionPolicyTemplate 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.

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
$policyDefn | fl


DatasourceType : {Microsoft.Storage/storageAccounts/blobServices}
ObjectType     : BackupPolicy
PolicyRule     : {Default}

$policyDefn.PolicyRule | fl

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api202101.SourceLifeCycle}
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.

$policyDefn.PolicyRule.Lifecycle | fl


DeleteAfterDuration        : P30D
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : OperationalStore
TargetDataStoreCopySetting :

Not

Uzun süreli geri yükleme işlemleri, geri yükleme sürecinin tamamlanmasının daha uzun sürmesine neden olabilir. Ayrıca, bir veri kümesini geri yüklemek için gereken 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 geçmişte 90 günden daha uzun bir süre saklama veya geri yükleme önermiyoruz.

İlke nesnesi istenen tüm değerlere sahip olduktan sonra, New-AzDataProtectionBackupPolicy komutunu kullanarak ilke nesnesinden yeni bir ilke oluşturmaya devam edin.

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name blobBkpPolicy -Policy $policyDefn

Name                   Type
----                   ----
blobBkpPolicy       Microsoft.DataProtection/backupVaults/backupPolicies

$blobBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "blobBkpPolicy"

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. Farklı bir abonelikteki blobrg kaynak grubu altında PSTestSA adlı bir depolama hesabı örneği kullanacağız.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • Yedekleme kasası: Yedekleme kasası, depolama hesabında bulunan bloblarda yedeklemeleri etkinleştirmek için depolama hesabında izinler gerektirir. Bu tür izinlerin atanması için kasanın sistem tarafından atanmış yönetilen kimliği 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

Bir yedekleme katmanı seçin:

Tüm ilgili izinler ayarlandıktan sonra yedekleme yapılandırması 2 adımda gerçekleştirilir. İlk olarak, Initialize-AzDataProtectionBackupInstance komutunu kullanarak ilgili kasayı, ilkeyi , depolama hesabını kullanarak ilgili isteği hazırlarız . Ardından New-AzDataProtectionBackupInstance komutunu kullanarak depolama hesabındaki blobları koruma isteğini göndeririz.

$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureBlob -DatasourceLocation $TestBkpvault.Location -PolicyId $blobBkpPol[0].Id -DatasourceId $SAId 
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                                                       Type                                                  BackupInstanceName
----                                                       ----                                                  ------------------
blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166 Microsoft.DataProtection/backupVaults/backupInstances blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166

Önemli

Depolama hesabı blob yedeklemesi için 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 cmdlet'leri çalıştırın:

  1. Test-AzDataProtectionBackupInstanceReadiness 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.

    Yedekleme kasasının yedeklemeyi yapılandırmak için gerekli tüm izinlere sahip olup olmadığını denetlemek için de bu komutu kullanabilirsiniz.

  2. Update-AzDataProtectionBackupInstance komutunu kullanarak Azure Bloblarını yedeklemek için kullanılan ilkeyi değiştirin. İlgili yedekleme öğesini ve yeni yedekleme ilkesini belirtin.

  3. İlkeyi veya yeni kapsayıcıları mevcut yedekleme öğelerine güncelleştirin.

    1. New-AzStorageContext cmdlet'i kullanarak depolama hesabı bağlamını oluşturun. Veri işlemlerinin -UseConnectedAccount Microsoft Entra kimlik bilgileriniz kullanılarak gerçekleştirilmesi için parametresini sağlayın. Depolama hesabı komutları hakkında daha fazla bilgi edinin.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Get-AzStorageContainer cmdlet kullanarak depolama konteynerlerini alın. Tek bir kapsayıcı almak için -Name parametresini sağlayın. Belirli bir karakter dizesiyle başlayan kapsayıcıların listesini döndürmek için parametresi için -Prefix bir değer belirtin.

    Aşağıdaki örnek hem tek bir kapsayıcıyı hem de kapsayıcı kaynaklarının listesini alır:

    
    
    # Create variables
    $containerName  = "individual-container"
    $prefixName     = "loop-"
    
    # Approach 1: Retrieve an individual container
    Get-AzStorageContainer -Name $containerName -Context $ctx
    Write-Host
    
    # Approach 2: Retrieve a list of containers
    $targetContainers = Get-AzStorageContainer -Context $ctx | Where-Object { $_.Name -match "cont" } 
    

    Sonuç, blob uç noktasının URI'sini sağlar ve ad ve ön eke göre alınan kapsayıcıları listeler:

    Storage Account Name: demostorageaccount
    
    Name                 PublicAccess         LastModified                   IsDeleted  VersionId        
    ----                 ------------         ------------                   ---------  ---------        
    individual-container                      11/2/2021 5:52:08 PM +00:00                                
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00                               
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00
    loop-container3                           11/2/2021 12:22:00 AM +00:00   True       01D7E7129FDBD7D4
    loop-container4                           11/2/2021 12:22:00 AM +00:00   True       01D7E8A5EF01C787 
    
    1. Güncelleştirilmesi gereken yedekleme örneğini getirin.

      C:\Users\testuser> $instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription "Demosub" -ResourceGroup Demo-BCDR-RG -Vault BCDR-BV-EastUS -DatasourceType AzureBlob
      PS C:\Users\testuser> $instance
                     Output
      Name                                                                     BackupInstanceName
      ----                                                                     ------------------
      blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c               blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c
      blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7 blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7
      testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037                     testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037
      
      
    2. Yedekleme Örneği'nde güncellemek istediğiniz vaulted-policy adlı yedekleme ilkesini alın. Yedekleme Örneği'nde güncelleştirilmesi gereken yeni ilkeyi de getirebilirsiniz.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Yedekleme örneğini yeni kapsayıcı listesiyle (mevcut yedeklenen kapsayıcılar ve yeni kapsayıcılar) güncelleştirin.

      PS C:\Users\testuser> $updateBI = Update-AzDataProtectionBackupInstance -ResourceGroupName Daya-BCDR-RG -VaultName DPBCDR-BV-EastUS -BackupInstanceName $instance[0].Name -SubscriptionId "ef4ab5a7-c2c0-4304-af80-af49f48af3d1"  -PolicyId $updatePolicy.id -VaultedBackupContainer $targetContainers.name
      
      
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyId
      /subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/Daya-BCDR-RG/providers/Microsoft.DataProtection/backupVaults/DPBCDR-BV-EastUS/backupPolicies/continerdeltest-1
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
      cont-01
      cont-02
      cont-03
      cont-04
      cont-05
      cont-06
      cont-07
      cont-08
      cont-09
      cont-10
      cont-11
      

Sonraki adımlar

Azure PowerShell kullanarak Azure bloblarını geri yükleyin.

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