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 PowerShell verwenden, um PostgreSQL-Datenbanken in einer Azure-Datenbank für PostgreSQL-Server wiederherzustellen, die Sie über Azure Backup gesichert haben. Sie können eine PostgreSQL-Datenbank auch mithilfe des Azure-Portals, der Azure CLI und der REST-API wiederherstellen.
Da es sich bei einer PostgreSQL-Datenbank um eine Plattform als Dienst(PaaS)-Datenbank handelt, wird die option Original-Location Recovery (OLR) zum Wiederherstellen durch Ersetzen der vorhandenen Datenbank (von wo aus die Sicherungen übernommen wurden) nicht unterstützt. Sie können aus einem Wiederherstellungspunkt wiederherstellen, um eine neue Datenbank in derselben Azure-Datenbank für PostgreSQL-Server oder auf einem beliebigen anderen PostgreSQL-Server zu erstellen. Diese Option wird als Alternate-Location Recovery (ALR) bezeichnet. ALR hilft dabei, sowohl die Quelldatenbank als auch die wiederhergestellte (neue) Datenbank beizubehalten.
Die Beispiele in diesem Artikel beziehen sich auf einen vorhandenen Backup-Tresor namens TestBkpVault
unter der Ressourcengruppe testBkpVaultRG
:
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
Wiederherstellen zum Erstellen einer neuen PostgreSQL-Datenbank
Einrichten von Berechtigungen
Ein Sicherungstresor verwendet eine verwaltete Identität, um auf andere Azure-Ressourcen zuzugreifen. Zur Wiederherstellung aus einer Sicherung benötigt die verwaltete Identität des Backup-Tresors verschiedene Berechtigungen auf dem Azure Database for PostgreSQL-Server, auf dem die Datenbank wiederhergestellt werden soll.
Weitere Informationen zum Zuweisen der relevanten Berechtigungen für eine systemseitig zugewiesene verwaltete Identität des Tresors auf dem PostgreSQL-Zielserver finden Sie unter Für die Sicherung einer PostgreSQL-Datenbank erforderliche Berechtigungen.
Um den Wiederherstellungspunkt als Dateien in einem Speicherkonto wiederherzustellen, benötigt die systemseitig zugewiesene verwaltete Identität des Sicherungstresors Zugriff auf das Zielspeicherkonto.
Holen Sie den entsprechenden Wiederherstellungspunkt
Rufen Sie alle Instanzen mithilfe des Get-AzDataProtectionBackupInstance
Befehls ab, und identifizieren Sie die relevante Instanz:
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Sie können auch Az.Resourcegraph
und den Befehl Search-AzDataProtectionBackupInstanceInAzGraph
verwenden, um Wiederherstellungspunkte in Instanzen in zahlreichen Tresoren und Abonnements zu suchen:
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured
Verwenden Sie die PowerShell-Clientsuchfunktionen, um die Suchkriterien zu filtern:
Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "empdb11"}
Nachdem Sie die Instanz identifiziert haben, rufen Sie den relevanten Wiederherstellungspunkt ab:
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName
Wenn Sie den Wiederherstellungspunkt von der Archivebene abrufen müssen, fügen Sie einen Clientfilter hinzu:
Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName | Where-Object {$_.Property.RecoveryPointDataStoresDetail[0].Type -match "Archive" }
Vorbereiten der Wiederherstellungsanforderung
Es gibt verschiedene Wiederherstellungsoptionen für eine PostgreSQL-Datenbank. Sie können den Wiederherstellungspunkt als andere Datenbank oder als Dateien wiederherstellen. Der Wiederherstellungspunkt kann sich auch auf der Archivebene befinden.
Wiederherstellen als Datenbank
Erstellen Sie die Azure Resource Manager-ID der neuen PostgreSQL-Datenbank, die erstellt werden soll (mit dem Ziel-PostgreSQL-Server, dem Berechtigungen zugewiesen wurden, wie zuvor beschrieben). Schließen Sie den erforderlichen PostgreSQL-Datenbanknamen ein. Eine PostgreSQL-Datenbank kann beispielsweise als emprestored21
unter einem PostgreSQL-Zielserver namens targetossserver
in der Ressourcengruppe targetrg
mit einem anderen Abonnement benannt werden:
$targetOssId = /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21
Verwenden Sie den Initialize-AzDataProtectionRestoreRequest
Befehl, um die Wiederherstellungsanforderung mit allen relevanten Details vorzubereiten:
$OssRestoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault
Für einen archivbasierten Wiederherstellungspunkt müssen Sie folgende Schritte ausführen:
- Aktivieren aus dem Archivdatenspeicher im Tresorspeicher
- Ändern des Quelldatenspeichers
- Hinzufügen weiterer Parameter, um die Aktivierungspriorität anzugeben
- Angeben der Dauer, für die der aktivierte Wiederherstellungspunkt im Tresordatenspeicher beibehalten werden soll
- Wiederherstellung als Datenbank von diesem Wiederherstellungspunkt aus.
Verwenden Sie den folgenden Befehl, um die Anforderung auf alle zuvor erwähnten Vorgänge gleichzeitig vorzubereiten:
$OssRestoreFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault -RehydrationDuration 12 -RehydrationPriority Standard
Wiederherstellen als Dateien
Rufen Sie den URI des Containers innerhalb des Speicherkontos ab, dem Berechtigungen zugewiesen wurden, wie zuvor beschrieben. Im folgenden Beispiel wird ein Container testcontainerrestore
in einem Speicherkonto testossstorageaccount
mit einem anderen Abonnement verwendet:
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Verwenden Sie den Initialize-AzDataProtectionRestoreRequest
Befehl, um die Wiederherstellungsanforderung mit allen relevanten Details vorzubereiten:
$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768"
Ändern Sie für den archivbasierten Wiederherstellungspunkt den Quelldatenspeicher. Fügen Sie die Rehydrationspriorität und die Aufbewahrungsdauer des rehydratierten Wiederherstellungspunkts in Tagen hinzu:
$OssRestoreAsFilesFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768" -RehydrationDuration "14" -RehydrationPriority Standard
Auslösen des Wiederherstellungsvorgangs
Verwenden Sie den Start-AzDataProtectionBackupInstanceRestore
Befehl, um die Wiederherstellung mit der Anforderung auszulösen, die Sie zuvor vorbereitet haben:
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
Nachverfolgen von Aufträgen
Nachverfolgen von Aufträgen 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 Aufträge über alle Backup-Tresore hinweg nachzuverfolgen. Verwenden Sie den Befehl Search-AzDataProtectionJobInAzGraph
, um den relevanten Auftrag über alle Backup-Tresore hinweg abzurufen:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -Operation OnDemandBackup