Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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.