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 sauvegarder une base de données Azure PostgreSQL avec Azure PowerShell.
Dans cet article, vous apprendrez comment :
Créer un coffre de sauvegarde
Créer une stratégie de sauvegarde
Configurer une sauvegarde d’une instance Azure Database pour PostgreSQL – Serveur flexible
Exécuter un travail de sauvegarde à la demande
Pour plus d’informations sur Azure Database pour PostgreSQL – Scénarios et limitations pris en charge par le serveur flexible, consultez la matrice de prise en charge.
Créer un coffre de sauvegarde
Le coffre de sauvegarde est une entité de stockage dans Azure. Il stocke les données de sauvegarde pour les nouvelles charges de travail prises en charge par Sauvegarde Azure. Par exemple, des serveurs Azure Database pour PostgreSQL – Serveur flexible, des objets blobs dans un compte de stockage et des disques Azure. Il vous aide à organiser vos données de sauvegarde tout en réduisant la charge de gestion. Les coffres Sauvegarde sont basés sur le modèle Azure Resource Manager, qui fournit des fonctionnalités améliorées pour sécuriser les données de sauvegarde.
Avant de créer un coffre Sauvegarde, choisissez la redondance de stockage des données dans le coffre. Ensuite, procédez à la création du coffre Sauvegarde avec cette redondance de stockage et l’emplacement.
Dans cet article, nous allons créer un coffre Sauvegarde TestBkpVault dans la région westus, sous le groupe de ressources testBkpVaultRG. Utilisez la commande New-AzDataProtectionBackupVault pour créer un coffre Sauvegarde. Pour plus d’informations, consultez Création d’un coffre Sauvegarde.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
Une fois le coffre créé, nous créons une stratégie de sauvegarde pour protéger Azure PostgreSQL – Bases de données de serveur flexible.
Créer une stratégie de sauvegarde
Comprendre PostgreSQL –Stratégie de sauvegarde de serveur flexible
Examinons l’objet de stratégie de sauvegarde pour PostgreSQL – Serveur flexible.
- PolicyRule
- BackupRule
- BackupParameter
- BackupType (dans le cas présent, une sauvegarde complète du serveur)
- Magasin de données initial (où les sauvegardes sont placées initialement)
- Déclencheur (mode de déclenchement de la sauvegarde)
- Suivant une planification
- Critères d’étiquetage par défaut (« étiquette » par défaut pour toutes les sauvegardes planifiées. Cette étiquette lie les sauvegardes à la règle de rétention)
- BackupParameter
- Règle de rétention par défaut (une règle appliquée par défaut à toutes les sauvegardes sur le magasin de données initial)
- BackupRule
Par conséquent, cet objet définit le type des sauvegardes déclenchées, leur mode de déclenchement (via une planification), leur marquage, leur destination (magasin de données) et le cycle de vie des données de sauvegarde dans un magasin de données. L’objet par défaut pour PostgreSQL – Serveur flexible indique de déclencher une sauvegarde complète chaque semaine et de la placer dans le coffre, où elles sont stockées pendant trois mois.
Récupération du modèle de stratégie
Pour comprendre les composants internes d’une stratégie de sauvegarde pour la sauvegarde de base de données Azure PostgreSQL – Serveur flexible, récupérez le modèle de stratégie avec la commande Get-AzDataProtectionPolicyTemplate. Cette commande retourne un modèle de stratégie par défaut pour un type de source de données donné. Utilisez ce modèle de stratégie pour créer une nouvelle stratégie.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPGFlexServer
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/flexibleServers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Le modèle de stratégie est constitué d’un déclencheur (qui détermine le déclenchement de la sauvegarde) et d’un cycle de vie (qui décide quand supprimer/copier/déplacer la sauvegarde). Dans la sauvegarde Azure PostgreSQL – Base de données de serveur flexible, la valeur par défaut du déclencheur est un déclencheur hebdomadaire planifié (une sauvegarde tous les 7 jours) et une conservation de chaque sauvegarde pendant 3 mois.
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
Modification du modèle de stratégie
Modification de la planification
Le modèle de stratégie par défaut comporte une sauvegarde par semaine. Vous pouvez modifier la planification de la sauvegarde pour qu’elle se produise plusieurs jours par semaine. Pour cela, utilisez la commande Edit-AzDataProtectionPolicyTriggerClientObject.
Dans l’exemple suivant, la sauvegarde hebdomadaire est modifiée de façon à se produire le dimanche, le mercredi et le vendredi toutes les semaines. Le tableau des dates de planification mentionne les dates. Les jours de la semaine de ces dates sont pris comme jours de la semaine. Vous devez également spécifier que ces planifications se répètent chaque semaine. Par conséquent, l’intervalle de planification est « 1 », et le type d’intervalle « Weekly ».
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
Ajout d’une nouvelle règle de rétention
Le modèle par défaut a un cycle de vie pour le magasin de données initial sous la règle de rétention par défaut. Dans ce scénario, la règle indique de supprimer les données de sauvegarde au bout de trois mois. Utilisez la commande New-AzDataProtectionRetentionLifeCycleClientObject pour créer de nouveaux cycles de vie et la commande Edit-AzDataProtectionPolicyRetentionRuleClientObject pour les associer aux nouvelles règles ou aux règles existantes.
L’exemple suivant crée une règle de rétention nommée Monthly, où la première sauvegarde réussie de chaque mois doit être conservée dans le coffre pendant 6 mois.
$VaultLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultLifeCycle -IsDefault $false
Ajout d’une étiquette et des critères pertinents
Une fois qu’une règle de rétention est définie, vous devez créer une étiquette correspondante dans la propriété Déclencheur de la stratégie de sauvegarde. Utilisez la commande New-AzDataProtectionPolicyTagCriteriaClientObject pour créer un critère de marquage et la commande Edit-AzDataProtectionPolicyTagClientObject pour mettre à jour l’étiquette existante ou en créer une.
Dans l’exemple suivant, une étiquette est créée avec les critères (première sauvegarde réussie du mois) sous le même nom que la règle de rétention correspondante à appliquer.
Dans cet exemple, les critères d’étiquette doivent être nommés Monthly.
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Si la planification se compose de plusieurs sauvegardes par semaine (tous les dimanches, mercredis et jeudis comme dans l’exemple) et que vous souhaitez archiver les sauvegardes du dimanche et du vendredi, vous pouvez modifier les critères de marquage comme suit :
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Créer une stratégie de sauvegarde de PostgreSQL – Serveur flexible
Une fois le modèle modifié conformément aux exigences, utilisez la commande New-AzDataProtectionBackupPolicy pour créer une stratégie avec ce modèle.
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Configurer une sauvegarde
Une fois le coffre et la stratégie créés, il existe trois points critiques à prendre en compte pour protéger une base de données Azure PostgreSQL.
Entités clés impliquées
PostgreSQL – Serveur flexible à protéger
Récupérez l’ID Azure Resource Manager de PostgreSQL – Serveur flexible à protéger. Cet ID sert d’identificateur du serveur de base de données. Nous utilisons un exemple de serveur flexible PostgreSQL testpgflex, qui se trouve dans le groupe de ressources ossrg sous un autre abonnement.
$ossId = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/testpgflex
#### Backup vault
You need to connect the Backup vault to the PostgreSQL - flexbile server. Access is granted to the Backup vault's MSI.
See the [permissions] (/backup-azure-database-postgresql-flex-overview.md#permissions-for-backup) you should grant to the Managed System Identity (MSI) of the Backup Vault on the PostgreSQL - flexible server.
### Prepare the request
Once all the relevant permissions are set, the configuration of the backup is performed in two steps.
1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL - flexible server using the [Initialize-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/initialize-azdataprotectionbackupinstance) command.
1. We submit the request to protect the database server using the [New-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/new-azdataprotectionbackupinstance) command.
```azurepowershell
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQLFlexibleServer -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-testpgflex Microsoft.DataProtection/backupVaults/backupInstances ossrg-testpgflex
Exécuter une sauvegarde à la demande
Récupérez l’instance de sauvegarde sur laquelle vous devez déclencher une sauvegarde avec la commande Get-AzDataProtectionBackupInstance.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e -ResourceGroupName testBkpVaultRG -VaultName $TestBkpVault.Name -Name BackupInstanceName
Vous pouvez spécifier une règle de rétention lors du déclenchement de la sauvegarde. Pour afficher les règles de rétention dans la stratégie, accédez à l’objet de stratégie pour les règles de rétention. Dans l’exemple suivant est affichée la règle portant le nom default. Nous l’utilisons pour la sauvegarde à la demande.
$ossPol.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : OperationalStore
Name : BackupHourly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Pour déclencher une sauvegarde à la demande, utilisez la commande Backup-AzDataProtectionBackupInstanceAdhoc.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Suivre les 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 également utiliser la commande Az.ResourceGraph pour effectuer le suivi de tous les travaux dans l’ensemble des coffres de sauvegarde. Utilisez la commande Search-AzDataProtectionJobInAzGraph pour récupérer les travaux appropriés parmi tous les coffres Sauvegarde.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup