Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie Azure Database for PostgreSQL mithilfe von Azure PowerShell sichern. Sie können die Sicherung auch mithilfe des Azure-Portals, der Azure CLI und der REST-API für PostgreSQL-Datenbanken konfigurieren.
Erfahren Sie mehr über die unterstützten Szenarien und häufig gestellte Fragen zum Sichern von PostgreSQL-Datenbanken in Azure Database for PostgreSQL.
Erstellen eines Sicherungstresors
Ein Sicherungstresor ist eine Speicherentität in Azure. Es speichert die Sicherungsdaten für verschiedene neue Workloads, die Azure Backup unterstützt, z. B. Azure Database für PostgreSQL-Server, Azure-Datenträger und Azure-Blobs. 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 erstellen Sie einen Sicherungstresor mit dem Namen TestBkpVault
in der westus
Region unter der Ressourcengruppe testBkpVaultRG
. Sie verwenden den Befehl New-AzDataProtectionBackupVault
zum Erstellen eines Sicherungstresors.
Erfahren Sie mehr über das Erstellen eines Backupspeichers
$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
Erstellen einer Sicherungsrichtlinie
Nachdem Sie einen Tresor erstellt haben, können Sie eine Sicherungsrichtlinie erstellen, um PostgreSQL-Datenbanken zu schützen. Sie können auch eine Sicherungsrichtlinie für PostgreSQL-Datenbanken mithilfe der REST-API erstellen.
Verstehen der PostgreSQL-Sicherungsrichtlinie
Während die Festplattensicherung mehrere Sicherungen pro Tag bietet und die Blob-Sicherung eine kontinuierliche Sicherung ohne Trigger ist, bietet die PostgreSQL-Sicherung Archivschutz. Die Sicherungsdaten, die zuerst an den Tresor gesendet werden, können gemäß einer definierten Regel oder einem Lebenszyklus in die Archivebene verschoben werden.
In diesem Zusammenhang kann Ihnen die folgende Hierarchie helfen, das Sicherungsrichtlinienobjekt für PostgreSQL zu verstehen:
- Richtlinienregel
- Sicherungsregel
- Sicherungsparameter
- Sicherungstyp (eine vollständige Datenbanksicherung in diesem Fall)
- Anfänglicher Datenspeicher (wo die Sicherungen anfänglich landen)
- Trigger (wie die Sicherung ausgelöst wird)
- Zeitplan
- Standardtaggingkriterien (ein Standardtag, das alle geplanten Sicherungen mit der Aufbewahrungsregel verknüpft)
- Sicherungsparameter
- Standardaufbewahrungsregel (eine Regel, die standardmäßig auf alle Sicherungen angewendet wird, im ursprünglichen Datenspeicher)
- Sicherungsregel
Das Richtlinienobjekt definiert, welche Arten von Sicherungen ausgelöst werden, wie sie ausgelöst werden (über einen Zeitplan), wo sie kategorisiert sind, wo sie landen (ein Datenspeicher) und der Lebenszyklus ihrer Daten in einem Datenspeicher.
Das Standardmäßige PowerShell-Objekt für PostgreSQL sagt, dass jede Woche eine vollständige Sicherung ausgelöst wird. Die Sicherungen erreichen den Tresor, in dem sie drei Monate lang gespeichert sind.
Wenn Sie der Richtlinie die Archivebene hinzufügen möchten, müssen Sie entscheiden, wann die Daten aus dem Tresor in das Archiv verschoben werden, wie lange die Daten im Archiv verbleiben und welche der geplanten Sicherungen als archivierbar markiert werden sollen. Sie müssen eine Aufbewahrungsregel hinzufügen, die den Lebenszyklus der Sicherungsdaten aus dem Tresordatenspeicher zum Archivdatenspeicher definiert. Die Aufbewahrungsregel definiert auch, wie lange die Sicherungsdaten im Archivdatenspeicher verbleiben. Anschließend müssen Sie ein Tag hinzufügen, das die geplanten Sicherungen als für die Archivierung berechtigt markiert.
Das resultierende PowerShell-Objekt sieht wie folgt aus:
- Richtlinienregel
- Sicherungsregel
- Sicherungsparameter
- Sicherungstyp (eine vollständige Datenbanksicherung in diesem Fall)
- Anfänglicher Datenspeicher (wo die Sicherungen anfänglich landen)
- Trigger (wie die Sicherung ausgelöst wird)
- Zeitplan
- Standardmarkierungskriterien (ein Standard-Tag, das alle geplanten Sicherungen mit der Aufbewahrungsregel verbindet)
- Neue Kennzeichnungskriterien für die neue Aufbewahrungsregel mit demselben Namen
- Sicherungsparameter
- Standardaufbewahrungsregel (eine Regel, die standardmäßig auf alle Sicherungen angewendet wird, im ursprünglichen Datenspeicher)
- Neue Aufbewahrungsregel
- Lebenszyklus
- Quelldatenspeicher
- Zeitraum für das Löschen im Quelldatenspeicher
- In den Zieldatenspeicher kopieren
- Lebenszyklus
- Sicherungsregel
Abrufen der Richtlinienvorlage
Um die inneren Komponenten einer Sicherungsrichtlinie für die PostgreSQL-Datenbanksicherung zu verstehen, rufen Sie die Richtlinienvorlage mithilfe des Get-AzDataProtectionPolicyTemplate
Befehls ab. Dieser Befehl gibt die Standardrichtlinienvorlage für einen Datenquellentyp zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/servers/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 einen Lebenszyklus (der entscheidet, wann die Sicherung gelöscht, kopiert oder verschoben werden soll). In einer PostgreSQL-Datenbanksicherung ist der Standardwert für den Trigger ein geplanter wöchentlicher Trigger (eine Sicherung alle sieben Tage). Jede Sicherung wird für drei Monate aufbewahrt.
$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 den Edit-AzDataProtectionPolicyTriggerClientObject
Befehl, um den Zeitplan zu ändern.
Im folgenden Beispiel wird die wöchentliche Sicherung so geändert, dass sie jeden Sonntag, Mittwoch und Freitag jeder Woche durchgeführt wird. 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. Das Zeitplanintervall lautet 1
also, und der Intervalltyp lautet Weekly
.
$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
Wenn Sie den Archivschutz hinzufügen möchten, müssen Sie die Richtlinienvorlage ändern.
Die Standardvorlage verfügt über 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. Sie sollten eine neue Aufbewahrungsregel hinzufügen, die definiert, wann die Daten in den Archivdatenspeicher verschoben werden. Das heißt, Sicherungsdaten werden zuerst in den Archivdatenspeicher kopiert und dann im Tresordatenspeicher gelöscht.
Außerdem sollte die Regel definieren, wie lange die Daten im Archivdatenspeicher aufbewahrt werden sollen. Verwenden Sie den New-AzDataProtectionRetentionLifeCycleClientObject
Befehl, um neue Lebenszyklen zu erstellen. Verwenden Sie den Edit-AzDataProtectionPolicyRetentionRuleClientObject
Befehl, um diese Lebenszyklen neuen oder vorhandenen Regeln zuzuordnen.
Im folgenden Beispiel wird eine neue Aufbewahrungsregel mit dem Namen Monthly
erstellt. In dieser Regel wird die erste erfolgreiche Sicherung jedes Monats für sechs Monate im Tresor aufbewahrt, in die Archivebene verschoben und 24 Monate lang in der Archivebene aufbewahrt.
$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption
$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false
Hinzufügen eines Tags und der relevanten Kriterien
Nachdem Sie eine Aufbewahrungsregel erstellt haben, müssen Sie eine entsprechende Markierung in der Trigger
-Eigenschaft der Sicherungsrichtlinie erstellen. Verwenden Sie den New-AzDataProtectionPolicyTagCriteriaClientObject
Befehl, um neue Taggingkriterien zu erstellen. Um das vorhandene Tag zu aktualisieren oder ein neues Tag zu erstellen, verwenden Sie den Befehl Edit-AzDataProtectionPolicyTagClientObject .
Im folgenden Beispiel wird ein neues Tag zusammen mit den Kriterien erstellt. Hierbei handelt es sich um die erste erfolgreiche Sicherung des Monats. Das Tag hat denselben Namen wie die entsprechende anzuwendende Aufbewahrungsregel.
In diesem Beispiel heißen die Tagkriterien Monthly
:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Wenn der Zeitplan mehrere Sicherungen pro Woche (jeden Sonntag, Mittwoch und Donnerstag, wie im vorherigen Beispiel angegeben) ist und Sie die Sicherungen für Sonntag und Freitag archivieren möchten, können Sie die Taggingkriterien wie folgt ändern:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Erstellen einer neuen PostgreSQL-Sicherungsrichtlinie
Nachdem Sie die Vorlage entsprechend den Anforderungen geändert haben, verwenden Sie den New-AzDataProtectionBackupPolicy
Befehl, um eine Richtlinie mithilfe der geänderten Vorlage zu erstellen:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Konfigurieren der Sicherung
Nachdem Sie den Tresor und die Richtlinie erstellt haben, müssen Sie drei wichtige Punkte berücksichtigen, um eine PostgreSQL-Datenbank in Azure Database for PostgreSQL zu sichern.
Wichtige Entitäten verstehen
Zu sichernde PostgreSQL-Datenbank
Rufen Sie die Ressource-Manager-ID der PostgreSQL-Datenbank ab, die gesichert werden soll. Diese ID dient als Bezeichner der Datenbank. Im folgenden Beispiel wird eine Datenbank namens empdb11
verwendet, die sich auf dem PostgreSQL-Server testposgresql
befindet, welcher in der Ressourcengruppe ossrg
unter einem anderen Abonnement vorhanden ist.
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Schlüsseltresor
Der Azure Backup-Dienst speichert den Benutzernamen und das Kennwort für die Verbindung mit der PostgreSQL-Datenbank nicht. Stattdessen speist die für Sicherungsadministration zuständige Person die Schlüssel in den Schlüsseltresor ein. Der Azure Backup-Dienst greift dann auf den Schlüsseltresor zu, liest die Schlüssel und greift auf die Datenbank zu. Notieren Sie sich die geheime Kennung des relevanten Schlüssels.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Sicherungstresor
Sie müssen den Sicherungstresor mit dem PostgreSQL-Server verbinden und dann über die im Schlüsseltresor vorhandenen Schlüssel auf die Datenbank zugreifen. Der Sicherungstresor erfordert also Zugriff auf den PostgreSQL-Server und den Schlüsseltresor. Der verwalteten Identität des Sicherungstresors wird Zugriff gewährt.
Schlagen Sie die entsprechenden Berechtigungen nach, die Sie der verwalteten Identität des Sicherungstresors auf dem PostgreSQL-Server und der Azure Key Vault-Instanz, in denen die Schlüssel für die Datenbank gespeichert sind, gewähren sollten.
Vorbereiten der Anforderung
Nachdem Sie alle relevanten Berechtigungen festgelegt haben, führen Sie die Konfiguration der Sicherung in zwei Schritten aus:
- Bereiten Sie die Anforderung mithilfe der relevanten Tresor-, Richtlinien- und PostgreSQL-Datenbank im
Initialize-AzDataProtectionBackupInstance
Befehl vor. - Senden Sie die Anforderung, um die Datenbank mithilfe des
New-AzDataProtectionBackupInstance
Befehls zu sichern.
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-empdb11 Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
Ausführen einer bedarfsgesteuerten Sicherung
Rufen Sie die relevante Sicherungsinstanz ab, auf der Sie eine Sicherung mithilfe des Get-AzDataProtectionBackupInstance
Befehls auslösen müssen:
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Sie können beim Auslösen einer Sicherung eine Aufbewahrungsregel angeben. Um die Aufbewahrungsregeln in einer Richtlinie anzuzeigen, durchsuchen Sie das Richtlinienobjekt. Im folgenden Beispiel wird die Regel mit dem Namen Default
angezeigt. In diesem Artikel wird diese Beispielregel für die On-Demand-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
Verwenden Sie den Backup-AzDataProtectionBackupInstanceAdhoc
Befehl, um eine On-Demand-Sicherung auszulösen:
$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 Get-AzDataProtectionJob
Befehls. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen.
Sie können auch Az.ResourceGraph
verwenden, um alle Aufträge über alle Backup-Depots hinweg zu verfolgen. Verwenden Sie den Befehl Search-AzDataProtectionJobInAzGraph
, um die relevanten Aufträge aus Sicherungstresoren abzurufen:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
Verwandte Inhalte
- Wiederherstellen einer PostgreSQL-Datenbank mithilfe von Azure PowerShell.
- Stellen Sie eine PostgreSQL-Datenbank mithilfe des Azure-Portals, der Azure CLI und der REST-API wieder her.