Partager via


Restaurer une instance Azure Database pour PostgreSQL : serveur flexible en utilisant Azure PowerShell (préversion)

Cet article explique comment restaurer un serveur flexible Azure Database pour PostgreSQL sur un serveur flexible Azure Database pour PostgreSQL sauvegardé par Sauvegarde Azure.

Dans cet article, vous allez apprendre à :

  • Restaurer pour créer un nouveau serveur PostgreSQL : serveur flexible

  • suivre l’état de l’opération de restauration.

Nous ferons référence au coffre de sauvegarde existant TestBkpVault du groupe de ressources testBkpVaultRG dans les exemples.

$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"

Effectuer une restauration pour créer une base de données PostgreSQL

Définir des autorisations

Le coffre Sauvegarde utilise l’identité managée pour accéder à d’autres ressources Azure. Pour effectuer une restauration à partir de la sauvegarde, l’identité managée du coffre de sauvegarde nécessite un ensemble d’autorisations sur le compte de stockage sur lequel le serveur serait restauré.

Pour attribuer les autorisations appropriées à l’identité managée affectée par le système du coffre sur le serveur PostgreSQL cible, consultez l’ensemble d’autorisations nécessaires pour sauvegarder une base de données Azure PostgreSQL.

Pour restaurer le point de récupération sous forme de fichiers dans un compte de stockage, l’identité managée affectée par le système du coffre de sauvegarde a besoin d’accéder au compte de stockage cible.

Extraction du point de récupération approprié

Extrayez toutes les instances à l’aide de la commande Get-AzDataProtectionBackupInstance, puis identifiez l’instance appropriée.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

Vous pouvez également utiliser Az.Resourcegraph et la commande Search-AzDataProtectionBackupInstanceInAzGraph pour rechercher des points de récupération parmi les instances de nombreux coffres et abonnements.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured

Pour filtrer les critères de recherche, utilisez les fonctionnalités de recherche du client PowerShell :

Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "testpgflex"}

Une fois l’instance identifiée, extrayez le point de récupération approprié.

$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName

Préparer la demande de restauration

Vous pouvez restaurer le point de récupération d’une base de données de serveur flexible PostgreSQL en tant que fichiers uniquement.

Restaurer sous forme de fichiers

Récupérez l’URI du conteneur dans le compte de stockage qui a reçu les autorisations indiquées ci-dessus, par exemple un conteneur nommé testcontainerrestore sous un compte de stockage testossstorageaccount avec un autre abonnement.

$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"

Utilisez la commande Initialize-AzDataProtectionRestoreRequest pour préparer la demande de restauration avec tous les détails appropriés.

$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "testpgflex-westus_1628853549768" 

Déclencher la restauration

Utilisez la commande Start-AzDataProtectionBackupInstanceRestore pour déclencher la restauration avec la demande préparée ci-dessus.

Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq

Suivi des travaux

Effectuez le suivi de tous les travaux à l’aide de la commande Get-AzDataProtectionJob. Vous pouvez répertorier tous les travaux et extraire le détail d’un travail particulier.

Vous pouvez aussi utiliser Az.ResourceGraph pour suivre les travaux dans l’ensemble des coffres de sauvegarde. Utilisez la commande Search-AzDataProtectionJobInAzGraph pour récupérer le travail approprié, quel que soit le coffre de sauvegarde.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup

Créer un serveur flexible PostgreSQL à partir du compte de stockage restauré

Après la restauration sur le compte de stockage cible, vous pouvez utiliser l’utilitaire pg_restore pour restaurer une base de données de serveur flexible Azure Database pour PostgreSQL à partir de la cible. Utilisez la commande suivante pour vous connecter à un serveur flexible PostgreSQL existant et à une base de données existante.

pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>

-Fd : le format du répertoire. -j : le nombre de travaux. -C : commencez la sortie avec une commande pour créer la base de données elle-même, puis vous y reconnecter.

Voici un exemple de la façon dont cette syntaxe peut apparaître :

pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format

Si vous avez plusieurs bases de données à restaurer, réexécutez la commande précédente pour chaque base de données.

En outre, à l’aide de plusieurs travaux simultanés -j, vous pouvez réduire le temps nécessaire à la restauration d’une base de données volumineuse sur un serveur cible multi-vCore. Le nombre de travaux peut être égal ou inférieur au nombre de processeurs virtuels alloués pour le serveur cible.

Étapes suivantes