Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come ripristinare Database di Azure per PostgreSQL server flessibile in un server flessibile Database di Azure per PostgreSQL di cui è stato eseguito il backup da Backup di Azure.
In questo articolo si apprenderà come:
Eseguire il ripristino per creare un nuovo server PostgreSQL - flessibile
Tenere traccia dello stato dell'operazione di ripristino
Negli esempi si farà riferimento a un insieme di credenziali di backup esistente TestBkpVault nel gruppo di risorse testBkpVaultRG.
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
Eseguire il ripristino per creare un nuovo database PostgreSQL
Impostare le autorizzazioni
L'insieme di credenziali di Backup usa un'identità gestita per accedere ad altre risorse di Azure. Per eseguire il ripristino dal backup, l'identità gestita dell'insieme di credenziali di backup richiede un set di autorizzazioni per l'account di archiviazione in cui verrà ripristinato il server.
Per assegnare le autorizzazioni pertinenti per l'identità gestita assegnata dal sistema nell'account di archiviazione di destinazione, vedere il set di autorizzazioni necessarie per il backup del database PostgreSQL di Azure.
Per ripristinare il punto di ripristino come file in un account di archiviazione, l'identità gestita assegnata dal sistema dell'insieme di credenziali di Backup richiede l'accesso nell'account di archiviazione di destinazione.
Recupero del punto di ripristino pertinente
Recuperare tutte le istanze usando il comando Get-AzDataProtectionBackupInstance e identificare l'istanza pertinente.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
È anche possibile usare Az.Resourcegraph e il comando Search-AzDataProtectionBackupInstanceInAzGraph per cercare i punti di ripristino tra istanze in molti insiemi di credenziali e sottoscrizioni.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured
Per filtrare i criteri di ricerca, usare le funzionalità di ricerca client di PowerShell come illustrato di seguito:
Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "testpgflex"}
Dopo aver identificato l'istanza, recuperare il punto di ripristino pertinente.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName
Preparare la richiesta di ripristino
È possibile ripristinare il punto di ripristino per un database del server flessibile PostgreSQL solo come file.
Ripristinare come file
Recuperare l'URI del contenitore, all'interno dell'account di archiviazione a cui sono state assegnate le autorizzazioni come descritto dettagliatamente sopra. Ad esempio, un contenitore denominato testcontainerrestore in un account di archiviazione testossstorageaccount con una sottoscrizione diversa.
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Usare il comando Initialize-AzDataProtectionRestoreRequest per preparare la richiesta di ripristino con tutti i dettagli pertinenti.
$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "testpgflex-westus_1628853549768"
Attivare il processo di ripristino
Usare il comando Start-AzDataProtectionBackupInstanceRestore per attivare il ripristino con la richiesta preparata in precedenza.
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
Tracciamento del processo
Tenere traccia di tutti i processi usando il comando Get-AzDataProtectionJob. È possibile elencare tutti i processi e recuperare un dettaglio particolare di un processo.
È possibile anche usare Az.ResourceGraph per tenere traccia dei processi in tutti gli insiemi di credenziali di Backup. Usare il comando Search-AzDataProtectionJobInAzGraph per ottenere il processo pertinente che si trova in tutti gli insiemi di credenziali di backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup
Creare PostgreSQL: server flessibile dall'account di archiviazione ripristinato
Dopo il completamento del ripristino nell'account di archiviazione di destinazione, è possibile usare pg_restore utilità per ripristinare un database del server flessibile Database di Azure per PostgreSQL dalla destinazione. Usare il comando seguente per connettersi a un server flessibile PostgreSQL esistente e a un database esistente.
pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>
-Fd: formato della directory. -j: numero di processi. -C: iniziare l'output con un comando per creare il database stesso e quindi riconnettersi.
Ecco un esempio di come può apparire questa sintassi:
pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format
Se sono presenti più database da ripristinare, eseguire di nuovo il comando precedente per ogni database.
Inoltre, usando più processi simultanei -j, è possibile ridurre il tempo necessario per ripristinare un database di grandi dimensioni in un server di destinazione multi-vCore. Il numero di processi può essere uguale o minore al numero di vCPU allocati per il server di destinazione.