Condividi tramite


Ripristinare Database di Azure per PostgreSQL : server flessibile con Azure PowerShell (anteprima)

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.

Passaggi successivi