Aracılığıyla paylaş


Azure PowerShell kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucuyu yedekleme

Bu makalede, Azure PowerShell kullanarak Azure Veritabanı - PostgreSQL Esnek Sunucu'nun nasıl yedekleneceği açıklanır.

PostgreSQL için Azure Veritabanı - esnek sunucu yedeklemesi için desteklenen senaryolar ve sınırlamalar hakkında daha fazla bilgi edinin.

Backup kasası oluşturma

Yedekleme kasası, Azure'daki bir depolama varlığıdır. Bu, Azure Backup'ın desteklediği yeni iş yükleri için yedekleme verilerini depolar. Örneğin PostgreSQL için Azure Veritabanı : Esnek sunucular, depolama hesabındaki bloblar ve Azure Diskler. Yedekleme kasaları, yedekleme verilerinizi düzenlemeye yardımcı olurken yönetim ek yükünü 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, TestBkpVaultkaynak grubunun altında westusbölgesinde testBkpVaultRGbir Backup kasası oluşturalım. New-AzDataProtectionBackupVault Backup kasası oluşturmak için cmdlet'ini 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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

Yedeklemeyi yapılandırma

Veritabanı için korumayı yapılandırmadan önce bir Yedekleme ilkesi oluşturduğunuzdan emin olun. Kasa ve politika oluşturulduktan sonra, aşağıdaki adımları izleyerek Azure PostgreSQL Veritabanı - Esnek Sunucu'yu koruyun:

  • Korunacak PostgreSQL - Esnek Sunucunun ARM Kimliğini alın
  • Backup kasasına erişim izni verme
  • Yedekleme yapılandırma isteğini hazırlama

Korunacak PostgreSQL - Esnek Sunucunun ARM Kimliğini alın

Korumak için PostgreSQL – Esnek Sunucunun Azure Resource Manager Kimliğini (ARM Kimliği) getirin. Bu kimlik, veritabanının tanımlayıcısı olarak görev alır. Farklı bir abonelik altında empdb11 kaynak grubunda bulunan PostgreSQL - Esnek Sunucu testposgresqlaltında ossrg adlı bir veritabanı örneği kullanalım.

$ossId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/archive-postgresql-ccy/databases/empdb11"

Backup kasasına erişim izni verme

Yedekleme kasasının PostgreSQL – Esnek Sunucu'ya bağlanması ve ardından anahtar kasasında bulunan anahtarlar aracılığıyla veritabanına erişmesi gerekir. Bu nedenle PostgreSQL – Esnek Sunucu'ya ve anahtar kasasına erişim gerektirir. Backup kasasının Yönetilen Hizmet Kimliğine (MSI) gerekli erişimi verin.

Veritabanının anahtarlarını depolayan Azure Key kasası ve PostgreSQL – Esnek Sunucu'da, Backup kasasının Yönetilen Hizmet Kimliği (MSI) için gereken izinleri denetleyin.

Yedekleme yapılandırma isteğini hazırlama

Tüm ilgili izinler ayarlandıktan sonra aşağıdaki cmdlet'leri çalıştırarak yedeklemeyi yapılandırın:

  1. Initialize-AzDataProtectionBackupInstance cmdlet'ini kullanarak ilgili kasayı, politikayı ve PostgreSQL - esnek Sunucuyu kullanarak ilgili isteği hazırlayın.

    $instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPGFlexServer -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
    ConvertTo-Json -InputObject $instance -Depth 4 
    
  2. cmdlet'ini kullanarak New-AzDataProtectionBackupInstance veritabanı sunucusunu korumak için isteği gönderin.

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
    
    Name                        Type                                         BackupInstanceName
    ----                        ----                                          ------------------
    ossrg-empdb11       Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
    
    

İsteğe bağlı yedekleme çalıştırma

Get-AzDataProtectionBackupInstance cmdlet'ini kullanarak tetiklemeniz gereken yedekleme işlemi için ilgili yedekleme örneğini alın.

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"

Yedekleme işlemini tetiklerken bir saklama kuralı belirtin. İlkedeki bekletme kurallarını görüntülemek için bekletme kuralları için ilke nesnesine gidin. Aşağıdaki örnekte , varsayılan ada sahip kural görüntülenir. İsteğe bağlı yedekleme için bu kuralı kullanalım.

$ossPol.PolicyRule | fl

BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : OperationalStore
Name                      : BackupHourly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType         : ScheduleBasedTriggerContext

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

İsteğe bağlı yedekleme tetikleme için cmdlet'ini Backup-AzDataProtectionBackupInstanceAdhoc kullanın.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"

İş takibi

Get-AzDataProtectionJob cmdlet'ini kullanarak tüm işleri izleyin. Tüm işleri listeleyebilir ve belirli bir iş ayrıntısı getirebilirsiniz.

Tüm yedekleme kasalarında Az.ResourceGraph cmdlet'ini kullanarak tüm işleri izleyebilirsiniz. Backup kasalarında bulunan ilgili işleri getirmek için Search-AzDataProtectionJobInAzGraph cmdlet'ini kullanın.

  $job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup

Sonraki adımlar