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 das Sichern von PostgreSQL-Datenbanken auf virtuellen Azure-Computern mithilfe der Azure CLI beschrieben. Sie können die Sicherung auch mithilfe von Azure-Portal, Azure PowerShell und REST-API für PostgreSQL-Datenbanken konfigurieren.
Erfahren Sie mehr über die unterstützten Szenarien und häufig gestellte Fragen zum Sichern der Azure-Datenbank für PostgreSQL.
Erstellen eines Sicherungstresors
Ein Sicherungstresor ist eine Speicherentität in Azure. Es speichert die Sicherungsdaten für neue Workloads, die Azure Backup unterstützt, z. B. Azure-Datenbank für PostgreSQL-Server, Blobs in einem Speicherkonto und Azure-Datenträger. Backup-Tresore helfen bei der Organisation Ihrer Backup-Daten 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
. Verwenden Sie den az dataprotection vault create
Befehl, um einen Backupspeicher zu erstellen.
Erfahren Sie mehr über das Erstellen eines Backupspeichers
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"
}
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 Sie die 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
- Standard-Markierungskriterien (eine voreingestellte Kennzeichnung, die 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 geeignet kennzeichnet, um archiviert zu werden.
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 Etikettierungskriterien 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 az dataprotection backup-policy get-default-policy-template
Befehls ab. Dieser Befehl gibt die Standardrichtlinienvorlage für einen Datenquellentyp zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQL
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"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.
Geplanter Trigger
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
}
Standardlebenszyklus für die Aufbewahrungsregel
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
Ändern der Richtlinienvorlage
In Azure PowerShell können Sie Objekte als Stagingspeicherorte verwenden, um alle Änderungen auszuführen. In der Azure CLI müssen Sie Dateien verwenden, da es keine Vorstellung von Objekten gibt. Jeder Bearbeitungsvorgang sollte an eine neue Datei umgeleitet werden, in der Inhalt aus der Eingabedatei gelesen und an die Ausgabedatei umgeleitet wird. Sie können die Datei später nach Bedarf umbenennen, während Sie sie in einem Skript verwenden.
Ändern Sie den Zeitplan
Die Standardrichtlinienvorlage bietet einmal pro Woche eine Sicherung an. Sie können den Zeitplan so ändern, dass die Sicherung an mehreren Tagen pro Woche erfolgt. Verwenden Sie den az dataprotection backup-policy trigger set
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
.
az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
]
az dataprotection backup-policy trigger set --policy .\OSSPolicy.json --schedule R/2021-08-15T22:00:00+00:00/P1W R/2021-08-18T22:00:00+00:00/P1W R/2021-08-20T22:00:00+00:00/P1W > EditedOSSPolicy.json
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 az dataprotection backup-policy retention-rule create-lifecycle
Befehl, um neue Lebenszyklen zu erstellen. Verwenden Sie den az dataprotection backup-policy retention-rule set
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.
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore --target-datastore ArchiveStore --copy-option CopyOnExpiryOption > VaultToArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 24 --retention-duration-type Months -source-datastore ArchiveStore > OnArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule set --lifecycles .\VaultToArchiveLifeCycle.JSON .\OnArchiveLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.JSON > AddedRetentionRulePolicy.JSON
Hinzufügen eines Tags und der entsprechenden Kriterien
Nachdem Sie eine Aufbewahrungsregel erstellt haben, müssen Sie eine entsprechende Markierung in der Trigger
-Eigenschaft der Sicherungsrichtlinie erstellen. Verwenden Sie den az dataprotection backup-policy tag create-absolute-criteria
Befehl, um neue Taggingkriterien zu erstellen. Verwenden Sie den az dataprotection backup-policy tag set
Befehl, um das vorhandene Tag zu aktualisieren oder ein neues Tag zu erstellen.
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 werden die Kriterien für die Tags als Monthly
benannt.
az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
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 mithilfe des az dataprotection backup-policy tag create-generic-criteria
Befehls ändern:
az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
Erstellen Sie eine neue PostgreSQL-Sicherungsrichtlinie
Nachdem Sie die Vorlage entsprechend den Anforderungen geändert haben, verwenden Sie den az dataprotection backup-policy create
Befehl, um eine Richtlinie mithilfe der geänderten Vorlage zu erstellen:
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
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
PostgreSQL-Datenbank, die gesichert werden soll
Rufen Sie die Ressource-Manager-ID der PostgreSQL-Datenbank ab, die gesichert werden soll. Diese ID dient als Bezeichner der Datenbank. Im nachfolgenden Beispiel wird eine Datenbank namens empdb11
unter dem PostgreSQL-Server testposgresql
verwendet, die in der Ressourcengruppe ossrg
unter einem anderen Abonnement vorhanden ist. Im Beispiel wird Bash verwendet.
ossId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Key Vault (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.
Im folgenden Beispiel wird Bash verwendet. Notieren Sie den geheimen Bezeichner des relevanten Schlüssels.
keyURI="https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Sicherungstresor
Ein Sicherungstresor muss eine Verbindung mit dem PostgreSQL-Server herstellen 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.
Erfahren Sie mehr über die Berechtigungen, die Sie der verwalteten Identität des Sicherungstresors für den PostgreSQL-Server und den Schlüsseltresor erteilen sollten, in dem die Schlüssel der Datenbank gespeichert sind.
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
az dataprotection backup-instance initialize
Befehl vor. - Senden Sie die Anforderung, um die Datenbank mithilfe des
az dataprotection backup-instance create
Befehls zu sichern.
az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQL -l <vault-location> --policy-id <policy_arm_id> --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
az dataprotection backup-instance create --resource-group testBkpVaultRG --vault-name TestBkpVault TestBkpvault --backup-instance .\OSSBkpInstance.JSON
Eine Sicherung auf Abruf ausführen
Sie müssen eine Aufbewahrungsregel angeben, während Sie die Sicherung auslösen. Um die Aufbewahrungsregeln in einer Richtlinie anzuzeigen, durchsuchen Sie die JSON-Richtliniendatei. Im folgenden Beispiel gibt es zwei Aufbewahrungsregeln mit den Namen Default
und Monthly
. In diesem Artikel wird die Monthly
Regel für die On-Demand-Sicherung verwendet.
az dataprotection backup-policy show -g ossdemorg --vault-name ossdemovault-1 --subscription e3d2d341-4ddb-4c5d-9121-69b7e719485e --name osspol5
{
"id": "/subscriptions/e3d2d341-4ddb-4c5d-9121-69b7e719485e/resourceGroups/ossdemorg/providers/Microsoft.DataProtection/backupVaults/ossdemovault-1/backupPolicies/osspol5",
"name": "osspol5",
"properties": {
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-04T20:00:00+00:00/P1W",
"R/2020-04-01T20:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"daysOfMonth": null,
"daysOfTheWeek": null,
"monthsOfYear": null,
"objectType": "ScheduleBasedBackupCriteria",
"scheduleTimes": null,
"weeksOfTheMonth": null
}
],
"isDefault": false,
"tagInfo": {
"eTag": null,
"id": "Monthly_",
"tagName": "Monthly"
},
"taggingPriority": 15
},
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P10Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P1Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "ossdemorg",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Verwenden Sie den az dataprotection backup-instance adhoc-backup
Befehl, um eine On-Demand-Sicherung auszulösen:
az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault
Nachverfolgen von Aufträgen
Verfolgen Sie alle Aufträge mithilfe des az dataprotection job list
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 az dataprotection job list-from-resourcegraph
, um die relevanten Aufträge aus den verschiedenen Sicherungstresoren abzurufen:
az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --status Completed
Verwandte Inhalte
- Wiederherstellen von PostgreSQL-Datenbanken mithilfe der Azure CLI.
- Stellen Sie eine PostgreSQL-Datenbank mithilfe von Azure-Portal, Azure PowerShell und REST-API wieder her.