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 Wiederherstellen einer Instanz von Azure Database for PostgreSQL – Flexible Server in einer Instanz von Azure Database for PostgreSQL – Flexibler Server erläutert, die in Azure Backup gesichert ist.
In diesem Artikel lernen Sie Folgendes:
Wiederherstellen zum Erstellen einer neuen Instanz von PostgreSQL – Flexibler Server
Nachverfolgen des Status des Wiederherstellungsvorgangs
In den Beispielen wird auf einen vorhandenen Sicherungstresor TestBkpVault unter der Ressourcengruppe testBkpVaultRG verwiesen.
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
Wiederherstellen zum Erstellen einer neuen PostgreSQL-Datenbank
Einrichten von Berechtigungen
Der Sicherungstresor verwendet die verwaltete Identität für den Zugriff auf andere Azure-Ressourcen. Zur Wiederherstellung aus einer Sicherung benötigt die verwaltete Identität des Backup-Tresors verschiedene Berechtigungen für das Speicherkonto, in dem der Server wiederhergestellt werden soll.
Weitere Informationen zum Zuweisen der relevanten Berechtigungen für die systemseitig zugewiesene verwaltete Identität des Tresors im Zielspeicherkonto finden Sie unter Für die Sicherung einer Azure 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.
Der relevante Wiederherstellungspunkt wird abgerufen.
Rufen Sie mithilfe des Befehls Get-AzDataProtectionBackupInstance alle Instanzen 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 über Instanzen in vielen Tresoren und Abonnements hinweg zu durchsuchen.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured
Um die Suchkriterien zu filtern, verwenden Sie die PowerShell-Clientsuchfunktionen, wie unten dargestellt:
Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "testpgflex"}
Rufen Sie den entsprechenden Wiederherstellungspunkt ab, sobald die Instanz identifiziert wurde.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName
Vorbereiten der Wiederherstellungsanforderung
Sie können den Wiederherstellungspunkt für eine Datenbank in PostgreSQL – Flexibler Server nur als Dateien wiederherstellen.
Wiederherstellen als Dateien
Rufen Sie den URI des Containers innerhalb des Speicherkontos ab, dem wie oben beschrieben Berechtigungen zugewiesen wurden. Beispiel: Ein Container namens testcontainerrestore unter einem Speicherkonto testossstorageaccount mit einem anderen Abonnement.
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Verwenden Sie den Befehl Initialize-AzDataProtectionRestoreRequest, um die Wiederherstellungsanforderung mit allen relevanten Details vorzubereiten.
$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "testpgflex-westus_1628853549768"
Auslösen des Wiederherstellungsvorgangs
Verwenden Sie den Befehl Start-AzDataProtectionBackupInstanceRestore, um die Wiederherstellung mit der oben vorbereiteten Anforderung zu initiieren.
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
Aufträge nachverfolgen
Verfolgen Sie alle Aufträge mithilfe des Befehls Get-AzDataProtectionJob. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen.
Sie können auch Az.ResourceGraph verwenden, um Aufträge über alle Sicherungstresore hinweg zu verfolgen. Verwenden Sie den Befehl Search-AzDataProtectionJobInAzGraph, um den relevanten Auftrag über den gesamten Sicherungstresor hinweg zu erhalten.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup
Erstellen eines flexiblen PostgreSQL-Servers aus einem wiederhergestellten Speicherkonto
Nach Abschluss der Wiederherstellung im Zielspeicherkonto können Sie das Hilfsprogramm pg_restore verwenden, um eine Datenbank von Azure Database for PostgreSQL – Flexibler Server aus dem Ziel wiederherzustellen. Verwenden Sie den folgenden Befehl, um eine Verbindung mit einer vorhandenen Instanz von PostgreSQL – Flexibler Server und einer vorhandenen Datenbank herzustellen.
pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>
-Fd: Das Verzeichnisformat. -j: Die Anzahl der Aufträge. -C: Starten der Ausgabe mit einem Befehl zum Erstellen der Datenbank selbst und dann zum erneuten Herstellen einer Verbindung mit ihr.
Beispiel für die Syntax:
pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format
Wenn Sie mehrere Datenbanken wiederherstellen müssen, führen Sie den vorherigen Befehl für jede Datenbank erneut aus.
Wenn Sie gleichzeitig mehrere Aufträge mit -j ausführen, können Sie auch die Zeit für das Wiederherstellen einer großen Datenbank auf einem Zielserver mit mehreren virtuellen Kernen (vCore) verkürzen. Die Anzahl der Aufträge darf maximal der Anzahl der dem Zielserver zugewiesenen vCPUs entsprechen.