Freigeben über


Sichern einer Instanz von Azure Database for PostgreSQL – Flexibler Server mit Azure PowerShell (Vorschau)

In diesem Artikel wird beschrieben, wie Sie eine Azure PostgreSQL-Datenbank mit Azure PowerShell sichern.

In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Erstellen eines Sicherungstresors

  • Erstellen einer Sicherungsrichtlinie

  • Konfigurieren einer Sicherung von Azure Database for PostgreSQL – Flexibler Server

  • Ausführen eines bedarfsgesteuerten Sicherungsauftrag

Informationen zu unterstützten Szenarien für Azure Database for PostgreSQL – Flexibler Server und zu Einschränkungen finden Sie in der Supportmatrix.

Erstellen eines Sicherungstresors

Der Sicherungstresor ist eine Speicherentität in Azure. Dadurch werden die Sicherungsdaten für neue von Azure Backup unterstützte Workloads gespeichert. Beispiele: flexible Azure Database for PostgreSQL-Server, Blobs in einem Speicherkonto und Azure-Datenträger. Sicherungstresore vereinfachen die Organisation Ihrer Sicherungsdaten und minimieren gleichzeitig den Verwaltungsaufwand. Sicherungstresore basieren auf dem Azure Resource Manager-Modell von Azure, das erweiterte Funktionen bietet, die das Schützen von Sicherungsdaten erleichtern.

Bevor Sie einen Sicherungstresor erstellen, wählen Sie die Speicherredundanz der Daten im Tresor aus. Anschließend erstellen Sie den Sicherungstresor mit der ausgewählten Speicherredundanz und dem angegebenen Speicherort.

In diesem Artikel wird der Sicherungstresor TestBkpVault in der Region westus unter der Ressourcengruppe testBkpVaultRG erstellt. Verwenden Sie den Befehl New-AzDataProtectionBackupVault, um einen Sicherungstresor zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Sicherungstresors.

$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/00001111-aaaa-2222-bbbb-3333cccc4444/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

Nachdem der Tresor erstellt wurde, erstellen wir eine Backup-Richtlinie zum Schutz von Datenbanken für Azure PostgreSQL – Flexibler Server.

Erstellen einer Sicherungsrichtlinie

Grundlegendes zur Sicherungsrichtlinie für PostgreSQL – Flexibler Server

Sehen wir uns das Sicherungsrichtlinienobjekt für PostgreSQL – Flexibler Server näher an.

  • PolicyRule
    • BackupRule
      • BackupParameter
        • BackupType (In diesem Fall eine vollständige Serversicherung)
        • Anfänglicher Datenspeicher (wo die Sicherungen anfänglich gespeichert werden)
        • Trigger (Wie die Sicherung ausgelöst wird)
          • Zeitplanbasiert
          • Standardtaggingkriterien (Ein Standardtag für alle geplanten Sicherungen – dieses Tag verknüpft die Sicherungen mit der Aufbewahrungsregel)
    • Standardaufbewahrungsregel (eine Regel, die standardmäßig auf alle Sicherungen im anfänglichen Datenspeicher angewendet wird)

Dieses Objekt legt also fest, welche Art von Backups ausgelöst werden, wie sie ausgelöst werden (über einen Zeitplan), mit welchen Tags sie versehen werden, wo sie abgelegt werden (ein Datenspeicher) und wie der Lebenszyklus der Backupdaten in einem Datenspeicher aussieht. Das Standardobjekt für PostgreSQL – Flexibler Server gibt an, dass jede Woche eine vollständige Sicherung ausgelöst werden soll. Diese erreichen den Tresor, in dem sie drei Monate lang gespeichert werden.

Abrufen der Richtlinienvorlage

Um die inneren Komponenten einer Sicherungsrichtlinie für eine Datenbanksicherung von Azure PostgreSQL – Flexibler Server zu verstehen, rufen Sie die Richtlinienvorlage mit dem Befehl Get-AzDataProtectionPolicyTemplate ab. Dieser Befehl gibt eine Standardrichtlinienvorlage für einen angegebenen DataSource-Typ zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.

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


DatasourceType : {Microsoft.DBforPostgreSQL/flexibleServers/databases}
ObjectType     : BackupPolicy
PolicyRule     : {BackupWeekly, Default}

$policyDefn.PolicyRule | fl


BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : VaultStore
Name                      : BackupWeekly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
                            ntext
TriggerObjectType         : ScheduleBasedTriggerContext

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

Die Richtlinienvorlage besteht aus einem Trigger (der entscheidet, was die Sicherung auslöst) und einem Lebenszyklus (der entscheidet, wann die Sicherung gelöscht/kopiert bzw. verschoben werden soll). Bei der Datenbanksicherung von Azure PostgreSQL – Flexibler Server ist der Standardwert für den Trigger ein geplanter wöchentlicher Trigger (eine Sicherung alle sieben Tage) und die Aufbewahrung jeder Sicherung für drei Monate.

 $policyDefn.PolicyRule[0].Trigger | fl


ObjectType                    : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone              : UTC
TaggingCriterion              : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl


DeleteAfterDuration        : P3M
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : VaultStore
TargetDataStoreCopySetting : {}

Ändern der Richtlinienvorlage

Ändern des Zeitplans

Die Standardrichtlinienvorlage bietet einmal pro Woche eine Sicherung an. Sie können den Zeitplan für die Sicherung auf mehrere Tage pro Woche ändern. Verwenden Sie zum Ändern des Zeitplans den Befehl Edit-AzDataProtectionPolicyTriggerClientObject.

Im folgenden Beispiel wird die wöchentliche Sicherung so geändert, dass die Sicherung jede Woche an jedem Sonntag, Mittwoch und Freitag erfolgt. Das Datumsarray für den Zeitplan erwähnt die Datumsangaben. Die Wochentage dieser Datumsangaben werden als Wochentage verwendet. Sie müssen auch angeben, dass diese Zeitpläne jede Woche wiederholt werden sollen. Daher ist das Zeitplanintervall „1“, und der Intervalltyp ist „Wöchentlich“.

$schDates = @(
	(
		(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
	), 
	(
		(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
	),
  (
		(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
	)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1 
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn   

Hinzufügen einer neuen Aufbewahrungsregel

Die Standardvorlage hat einen Lebenszyklus für den ursprünglichen Datenspeicher unter der Standardaufbewahrungsregel. In diesem Szenario besagt die Regel, dass die Sicherungsdaten nach drei Monaten zu löschen sind. Verwenden Sie den Befehl New-AzDataProtectionRetentionLifeCycleClientObject, um neue Lebenszyklen zu erstellen, und verwenden Sie den Befehl Edit-AzDataProtectionPolicyRetentionRuleClientObject, um sie den neuen Regeln oder vorhandenen Regeln zu zuordnen.

Im folgenden Beispiel wird eine neue Aufbewahrungsregel mit dem Namen Monatlich erstellt, bei der die erste erfolgreiche Sicherung jedes Monats sechs Monate lang im Tresor aufbewahrt werden soll.

$VaultLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6

Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultLifeCycle -IsDefault $false

Hinzufügen eines Tags und der relevanten Kriterien

Nachdem eine Aufbewahrungsregel erstellt wurde, müssen Sie ein entsprechendes Tag in der Trigger-Eigenschaft der Sicherungsrichtlinie erstellen. Verwenden Sie den Befehl New-AzDataProtectionPolicyTagCriteriaClientObject, um neue Taggingkriterien zu erstellen, und verwenden Sie den Befehl Edit-AzDataProtectionPolicyTagClientObject, um das vorhandene Tag zu aktualisieren oder ein neues Tag zu erstellen.

Im folgenden Beispiel wird ein neues Tag mit den Kriterien (welches die erste erfolgreiche Sicherung des Monats ist) und dem gleichen Namen wie die entsprechende Aufbewahrungsregel erstellt, die angewendet werden soll.

In diesem Beispiel sollte als Taggingkriterium Monatlich verwendet werden.

$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria

Wenn der Zeitplan aus mehreren Sicherungen pro Woche besteht (jeden Sonntag, Mittwoch, Donnerstag, wie im obigen Beispiel angegeben) und Sie die Sicherungen von Sonntag und Freitag archivieren möchten, kann das Taggingkriterium wie folgt geändert werden:

$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria

Erstellen einer neuen Sicherungsrichtlinie für PostgreSQL – Flexibler Server

Nachdem die Vorlage den Anforderungen entsprechend geändert wurde, verwenden Sie den Befehl New-AzDataProtectionBackupPolicy, um eine Richtlinie unter Verwendung der geänderten Vorlage zu erstellen.

$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn

Konfigurieren der Sicherung

Nach dem Erstellen des Tresors und der Richtlinie gibt es drei wichtige Punkte, die Sie für den Schutz einer Azure PostgreSQL-Datenbank beachten müssen.

Wichtige involvierte Entitäten

Zu schützende Instanz von Azure Database for PostgreSQL – Flexibler Server

Rufen Sie die Azure Resource Manager-ID (ARM-ID) der zu schützenden Instanzen von PostgreSQL – Flexibler Server ab. Diese ID fungiert als Bezeichner des Datenbankservers. Als Beispiel wird ein flexibler PostgreSQL-Server mit dem Namen testpgflex in der Ressourcengruppe ossrg unter einem anderen Abonnement verwendet.

$ossId = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/testpgflex

#### Backup vault

You need to connect the Backup vault to the PostgreSQL - flexbile server. Access is granted to the Backup vault's MSI.

See the [permissions] (/backup-azure-database-postgresql-flex-overview.md#permissions-for-backup) you should grant to the Managed System Identity (MSI) of the Backup Vault on the PostgreSQL - flexible server.

### Prepare the request

Once all the relevant permissions are set, the configuration of the backup is performed in two steps.

1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL - flexible server using the [Initialize-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/initialize-azdataprotectionbackupinstance) command.
1. We submit the request to protect the database server using the [New-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/new-azdataprotectionbackupinstance) command.

```azurepowershell
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQLFlexibleServer -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId ConvertTo-Json -InputObject $instance -Depth 4 

New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                        Type                                         BackupInstanceName
----                        ----                                          ------------------
ossrg-testpgflex       Microsoft.DataProtection/backupVaults/backupInstances ossrg-testpgflex

Ausführen einer On-Demand-Sicherung

Rufen Sie mit dem Befehl Get-AzDataProtectionBackupInstance die relevante Sicherungsinstanz ab, für die eine Sicherung ausgelöst werden muss.

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

Sie können eine Aufbewahrungsregel angeben, während Sie die Sicherung auslösen. Navigieren Sie zum Anzeigen der Aufbewahrungsregeln in der Richtlinie durch das Richtlinienobjekt für Aufbewahrungsregeln. Im folgenden Beispiel wird die Regel mit dem Namen default angezeigt. Diese Regel wird für die bedarfsgesteuerte Sicherung verwendet.

$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

So lösen Sie eine bedarfsgesteuerte Sicherung mithilfe des Befehls Backup-AzDataProtectionBackupInstanceAdhoc aus

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

Nachverfolgen von Aufträgen

Verfolgen Sie alle Aufträge mithilfe des Befehls Get-AzDataProtectionJob nach. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen.

Sie können auch Az.ResourceGraph verwenden, um alle Aufträge für alle Sicherungstresore zu überprüfen. Verwenden Sie den Befehl Search-AzDataProtectionJobInAzGraph, um die relevanten Aufträge aus allen Sicherungstresoren abzurufen.

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

Nächste Schritte