Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u een back-up maakt van Azure Database for PostgreSQL met behulp van Azure PowerShell. U kunt back-ups ook configureren met behulp van Azure Portal, Azure CLI en REST API voor PostgreSQL-databases.
Meer informatie over de ondersteunde scenario's en veelgestelde vragen over het maken van back-ups van PostgreSQL-databases in Azure Database for PostgreSQL.
Een Backup-kluis maken
Een Backup-kluis is een opslagentiteit in Azure. De back-upgegevens worden opgeslagen voor verschillende nieuwe workloads die door Azure Backup worden ondersteund, zoals Azure Database for PostgreSQL-servers, Azure-schijven en Azure-blobs. Back-upkluizen helpen bij het organiseren van uw back-upgegevens, terwijl de beheeroverhead wordt geminimaliseerd. Back-upkluizen zijn gebaseerd op het Azure Resource Manager-model van Azure, dat verbeterde mogelijkheden biedt om back-upgegevens te beveiligen.
Voordat u een Backup-kluis maakt, kiest u de opslagredundantie van de gegevens in de kluis. Ga vervolgens verder met het maken van de Backup-kluis met die opslagredundantie en de locatie.
In dit artikel maakt u een Back-upkluis met de naam TestBkpVault, in de westus regio, onder de resourcegroep testBkpVaultRG. Gebruik de New-AzDataProtectionBackupVault opdracht om een Backup-kluis te maken.
Meer informatie over het maken van een Backup-kluis.
$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/xxxxxxxx-xxxx-xxxx-xxxx/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
Maak een back-upbeleid
Nadat u een kluis hebt gemaakt, kunt u een back-upbeleid maken om PostgreSQL-databases te beveiligen. U kunt ook een back-upbeleid maken voor PostgreSQL-databases met behulp van REST API.
Inzicht in het PostgreSQL-back-upbeleid
Terwijl schijfback-ups meerdere back-ups per dag bieden en blobback-up een continue back-up is zonder trigger, biedt PostgreSQL-back-up archiefbeveiliging. De back-upgegevens die eerst naar de kluis zijn verzonden, kunnen worden verplaatst naar de archieflaag volgens een vastgestelde regel of een levenscyclus.
In deze context kan de volgende hiërarchie u helpen het back-upbeleidsobject voor PostgreSQL te begrijpen:
- Beleidsregel
- Back-upregel
- Back-upparameter
- Back-uptype (in dit geval een volledige databaseback-up)
- Eerste gegevensarchief (waarbij de back-ups in eerste instantie terechtkomen)
- Trigger (startpunt - hoe de back-up wordt geactiveerd)
- Schema
- Standaardcriteria voor taggen (een standaardtag die alle geplande back-ups koppelt aan de bewaarregel)
- Back-upparameter
- Standaardretentieregel (een regel die wordt toegepast op alle back-ups, standaard in het eerste gegevensarchief)
- Back-upregel
Het beleidsobject definieert met welke typen back-ups worden geactiveerd, hoe ze worden geactiveerd (via een schema), waarmee ze worden gelabeld, waar ze terechtkomen (een gegevensarchief) en de levenscyclus van hun gegevens in een gegevensarchief.
Het standaard PowerShell-object voor PostgreSQL zegt dat elke week een volledige back-up moet worden geactiveerd. De back-ups bereiken de kluis, waar ze drie maanden worden opgeslagen.
Als u de archieflaag wilt toevoegen aan het beleid, moet u bepalen wanneer de gegevens worden verplaatst van de kluis naar het archief, hoe lang de gegevens in het archief blijven en welke van de geplande back-ups moeten worden gelabeld als archiveringsbaar. U moet een bewaarregel toevoegen waarmee de levenscyclus van de back-upgegevens van het kluisdatastore naar het archiefdatastore wordt gedefinieerd. De bewaarregel bepaalt ook hoe lang de back-upgegevens in het archiefgegevensarchief blijven. Vervolgens moet u een tag toevoegen waarmee de geplande back-ups worden gemarkeerd als in aanmerking komen om te worden gearchiveerd.
Het resulterende PowerShell-object is als volgt:
- Beleidsregel
- Back-upregel
- Back-upparameter
- Back-uptype (in dit geval een volledige databaseback-up)
- Eerste gegevensarchief (waarbij de back-ups in eerste instantie terechtkomen)
- Trigger (startpunt - hoe de back-up wordt geactiveerd)
- Schema
- Standaardcriteria voor taggen (een standaardtag die alle geplande back-ups koppelt aan de bewaarregel)
- Nieuwe tagcriteria voor de nieuwe bewaarregel met dezelfde naam
- Back-upparameter
- Standaardretentieregel (een regel die wordt toegepast op alle back-ups, standaard in het eerste gegevensarchief)
- Nieuwe bewaarregel
- Levenscyclus
- Brongegevensarchief
- Periode voor verwijdering in het brongegevensarchief
- Kopiëren naar het doelgegevensarchief
- Levenscyclus
- Back-upregel
De beleidssjabloon ophalen
Als u meer wilt weten over de interne onderdelen van een back-upbeleid voor postgreSQL-databaseback-up, haalt u de beleidssjabloon op met behulp van de Get-AzDataProtectionPolicyTemplate opdracht. Met deze opdracht wordt de standaardbeleidssjabloon voor een gegevensbrontype geretourneerd. Gebruik deze beleidssjabloon om een nieuw beleid te maken.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/servers/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
De beleidssjabloon bestaat uit een trigger (waarmee wordt bepaald wat de back-up activeert) en een levenscyclus (waarmee wordt bepaald wanneer de back-up moet worden verwijderd, gekopieerd of verplaatst). In een PostgreSQL-databaseback-up is de standaardwaarde voor de trigger een geplande wekelijkse trigger (één back-up om de zeven dagen). Elke back-up wordt drie maanden bewaard.
$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 : {}
De beleidssjabloon wijzigen
Het schema wijzigen
De standaardbeleidssjabloon biedt één keer per week een back-up. U kunt het schema voor de back-up wijzigen zodat deze meerdere dagen per week plaatsvindt. Gebruik de Edit-AzDataProtectionPolicyTriggerClientObject opdracht om het schema te wijzigen.
In het volgende voorbeeld wordt de wekelijkse back-up gewijzigd in zondag, woensdag en vrijdag van elke week. De schemadatummatrix vermeldt de datums en de dagen van de week voor deze datums worden als dagen van de week genomen. U moet ook opgeven dat deze schema's elke week moeten worden herhaald. Het schema-interval is 1 dus en het intervaltype is 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
Een nieuwe bewaarregel toevoegen
Als u archiefbeveiliging wilt toevoegen, moet u de beleidssjabloon wijzigen.
De standaardsjabloon heeft een levenscyclus voor het eerste gegevensarchief onder de standaardretentieregel. In dit scenario zegt de regel dat de back-upgegevens na drie maanden moeten worden verwijderd. U moet een nieuwe bewaarregel toevoegen die definieert wanneer de gegevens naar het archiefgegevensarchief worden verplaatst. Het komt erop neer dat back-upgegevens eerst worden gekopieerd naar de archiefdatastore, en vervolgens worden verwijderd in de dataopslagplaats van de kluis.
De regel moet ook definiëren hoe lang de gegevens in het archiefgegevensarchief moeten worden bewaard. Gebruik de New-AzDataProtectionRetentionLifeCycleClientObject opdracht om nieuwe levenscycli te maken. Als u deze levenscyclus wilt koppelen aan nieuwe of bestaande regels, gebruikt u de Edit-AzDataProtectionPolicyRetentionRuleClientObject opdracht.
In het volgende voorbeeld wordt een nieuwe bewaarregel gemaakt met de naam Monthly. In deze regel wordt de eerste geslaagde back-up van elke maand gedurende zes maanden bewaard in de kluis, verplaatst naar de archieflaag en gedurende 24 maanden bewaard in de archieflaag.
$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption
$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false
Een tag en de relevante criteria toevoegen
Nadat u een bewaarregel hebt gemaakt, moet u een bijbehorende tag maken in de Trigger eigenschap van het back-upbeleid. Als u nieuwe tagcriteria wilt maken, gebruikt u de New-AzDataProtectionPolicyTagCriteriaClientObject opdracht. Als u de bestaande tag wilt bijwerken of een nieuwe tag wilt maken, gebruikt u de opdracht Edit-AzDataProtectionPolicyTagClientObject .
In het volgende voorbeeld wordt een nieuwe tag gemaakt, samen met de criteria. Dit is de eerste geslaagde back-up van de maand. De tag heeft dezelfde naam als de bijbehorende bewaarregel die moet worden toegepast.
In dit voorbeeld hebben de tagcriteria de naam Monthly:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Als het schema meerdere back-ups per week is (elke zondag, woensdag en donderdag, zoals opgegeven in het vorige voorbeeld) en u de back-ups van zondag en vrijdag wilt archiveren, kunt u de criteria voor taggen als volgt wijzigen:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Een nieuw PostgreSQL-back-upbeleid maken
Nadat u de sjabloon hebt aangepast aan de vereisten, gebruikt u de New-AzDataProtectionBackupPolicy opdracht om een beleid te maken met behulp van de gewijzigde sjabloon:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Backup configureren
Nadat u de kluis en het beleid hebt gemaakt, moet u nadenken over drie kritieke punten om een back-up te maken van een PostgreSQL-database in Azure Database for PostgreSQL.
Inzicht in belangrijke entiteiten
Een back-up van postgreSQL-database maken
Haal de Resource Manager-id van de PostgreSQL-database op waarvan een back-up moet worden gemaakt. Deze id fungeert als de id van de database. In het volgende voorbeeld wordt een database gebruikt met de naam empdb11 onder de PostgreSQL-server testposgresql, die aanwezig is in de resourcegroep ossrg onder een ander abonnement:
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Sleutelopslagplaats
De Azure Backup-service slaat de gebruikersnaam en het wachtwoord niet op om verbinding te maken met de PostgreSQL-database. In plaats daarvan plaatst de back-upbeheerder de sleutels in de sleutelkluis. De Azure Backup-service opent vervolgens de sleutelkluis, leest de sleutels en krijgt toegang tot de database. Noteer de geheime id van de relevante sleutel.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Backupkluis
U moet de Backup-kluis verbinden met de PostgreSQL-server en vervolgens toegang krijgen tot de database via de sleutels die aanwezig zijn in de sleutelkluis. De Backup-kluis vereist dus toegang tot de PostgreSQL-server en de sleutelkluis. Toegang wordt verleend tot de beheerde identiteit van de back-upkluis.
Lees meer over de juiste machtigingen die u moet verlenen aan de beheerde identiteit van de Backup-kluis op de PostgreSQL-server en Azure Key Vault, waar de sleutels voor de database worden opgeslagen.
De aanvraag voorbereiden
Nadat u alle relevante machtigingen hebt ingesteld, voert u de configuratie van de back-up in twee stappen uit:
- Bereid het verzoek voor met behulp van de relevante kluis, het beleid en de PostgreSQL-database in het
Initialize-AzDataProtectionBackupInstancecommando. - Dien de aanvraag in om een back-up van de database te maken met behulp van de
New-AzDataProtectionBackupInstanceopdracht.
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-empdb11 Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
Een on-demand back-up uitvoeren
Haal de relevante back-upinstantie op waarop u een back-up moet uitvoeren met behulp van het Get-AzDataProtectionBackupInstance commando.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
U kunt een bewaarregel opgeven tijdens het activeren van een back-up. Als u de bewaarregels in een beleid wilt bekijken, bladert u door het beleidsobject. In het volgende voorbeeld wordt de regel met de naam Default weergegeven. In dit artikel wordt die voorbeeldregel gebruikt voor de back-up op aanvraag.
$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
Gebruik de Backup-AzDataProtectionBackupInstanceAdhoc opdracht om een back-up op aanvraag te activeren:
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Banen bijhouden
Volg alle taken met behulp van de Get-AzDataProtectionJob opdracht. U kunt alle taken weergeven en een bepaalde taakdetails ophalen.
U kunt ook Az.ResourceGraph gebruiken om alle taken in Backup-kluizen te volgen. Gebruik de Search-AzDataProtectionJobInAzGraph opdracht om de relevante taken op te halen in elke Backup-kluis:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
Verwante inhoud
- Een PostgreSQL-database herstellen met behulp van Azure PowerShell.
- Herstel een PostgreSQL-database met behulp van Azure Portal, Azure CLI en REST API.
- Een Azure Database for PostgreSQL-server beheren met behulp van Azure Portal.