Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak zálohovat službu Azure Database for PostgreSQL pomocí Azure PowerShellu. Zálohování můžete nakonfigurovat také pomocí webu Azure Portal, Azure CLI a rozhraní REST API pro databáze PostgreSQL.
Přečtěte si další informace o podporovaných scénářích a nejčastějších dotazech k zálohování databází PostgreSQL ve službě Azure Database for PostgreSQL.
Vytvoření úložiště záloh
Zálohovací trezor je úložná entita v Azure. Ukládá zálohovaná data pro různé nové úlohy, které Azure Backup podporuje, jako jsou servery Azure Database for PostgreSQL, disky Azure a objekty blob Azure. Trezory záloh pomáhají uspořádat zálohovaná data a současně minimalizovat režijní náklady na správu. Trezory záloh jsou založené na modelu Azure Resource Manageru v Azure, který poskytuje vylepšené možnosti, které pomáhají zabezpečit zálohovaná data.
Než vytvoříte trezor služby Backup, zvolte redundanci úložiště dat v trezoru. Pokračujte vytvořením úložiště záloh s danou redundancí úložiště a umístěním.
V tomto článku vytvoříte trezor služby Backup s názvem TestBkpVault v oblasti westus pod skupinou prostředků testBkpVaultRG. Pomocí příkazu New-AzDataProtectionBackupVault vytvořte úložiště záloh.
Zjistěte více o vytváření trezoru záloh.
$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
Vytvoření zásad zálohování
Po vytvoření trezoru můžete vytvořit zásadu zálohování, která pomáhá chránit databáze PostgreSQL. Zásady zálohování pro databáze PostgreSQL můžete vytvořit také pomocí rozhraní REST API.
Vysvětlení zásad zálohování PostgreSQL
Zatímco zálohování disků nabízí více záloh za den a zálohování objektů blob je průběžné zálohování bez triggeru, zálohování PostgreSQL nabízí ochranu archivu. Zálohovaná data, která jsou poprvé odeslána do trezoru, lze přesunout do archivní úrovně podle definovaného pravidla nebo životního cyklu.
V tomto kontextu vám následující hierarchie může pomoct pochopit objekt zásad zálohování pro PostgreSQL:
- Zásadní pravidlo
- Pravidlo zálohování
- Parametr zálohování
- Typ zálohování (v tomto případě úplné zálohování databáze)
- Počáteční úložiště dat (kde se zálohy nejprve uloží)
- Aktivační událost (jak se aktivuje zálohování)
- Rozvrh
- Výchozí kritéria označování (výchozí značka, která provází všechny naplánované zálohy s pravidlem uchovávání informací)
- Parametr zálohování
- Výchozí pravidlo uchovávání informací (pravidlo použité pro všechny zálohy ve výchozím nastavení v počátečním úložišti dat)
- Pravidlo zálohování
Objekt zásady definuje, jaké typy záloh se aktivují, jak se aktivují (prostřednictvím plánu), co jsou označené, kde se nacházejí (úložiště dat) a životní cyklus dat v úložišti dat.
Výchozí objekt PowerShellu pro PostgreSQL říká, že se má aktivovat úplné zálohování každý týden. Zálohy se dostanou do trezoru, kde jsou uloženy na tři měsíce.
Pokud chcete do zásad přidat archivní úroveň, musíte se rozhodnout, kdy se data přesunou z trezoru do archivu, jak dlouho budou data v archivu a která z plánovaných záloh by se měla označit jako archivovatelná. Musíte přidat pravidlo uchovávání, které definuje životní cyklus zálohovaných dat z úložiště dat trezoru do archivního úložiště dat. Pravidlo uchovávání informací také definuje, jak dlouho budou zálohovaná data zůstat v archivačním úložišti dat. Pak musíte přidat značku, která označí naplánované zálohy jako způsobilé k archivaci.
Výsledný objekt PowerShellu je následující:
- Zásadní pravidlo
- Pravidlo zálohování
- Parametr zálohování
- Typ zálohování (v tomto případě úplné zálohování databáze)
- Počáteční úložiště dat (kde se zálohy nejprve uloží)
- Aktivační událost (jak se aktivuje zálohování)
- Rozvrh
- Výchozí kritéria označování (výchozí značka, která provází všechny naplánované zálohy s pravidlem uchovávání informací)
- Nová kritéria označování pro nové pravidlo uchovávání informací se stejným názvem
- Parametr zálohování
- Výchozí pravidlo uchovávání informací (pravidlo použité pro všechny zálohy ve výchozím nastavení v počátečním úložišti dat)
- Nové pravidlo uchovávání informací
- Životní cyklus
- Úložiště zdrojových dat
- Časové období pro odstranění ve zdrojovém úložišti dat
- Kopírování do cílového úložiště dat
- Životní cyklus
- Pravidlo zálohování
Načtěte šablonu zásad
Pokud chcete porozumět vnitřním komponentám zásad zálohování pro zálohování databáze PostgreSQL, načtěte šablonu zásad pomocí Get-AzDataProtectionPolicyTemplate příkazu. Tento příkaz vrátí výchozí šablonu zásad pro typ zdroje dat. Pomocí této šablony zásad můžete vytvořit novou zásadu.
$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
Šablona zásady se skládá z triggeru (který rozhoduje o tom, co aktivuje zálohování) a životního cyklu (který se rozhodne, kdy se má záloha odstranit, zkopírovat nebo přesunout). V zálohování databáze PostgreSQL je výchozí hodnota triggeru naplánovaná týdenní aktivační událost (jedna záloha každých 7 dnů). Každá záloha se uchovává po dobu tří měsíců.
$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 : {}
Úprava šablony zásad
Úprava plánu
Výchozí šablona zásad nabízí zálohu jednou týdně. Plán zálohování můžete upravit tak, aby probíhalo více dní v týdnu. Pokud chcete změnit plán, použijte Edit-AzDataProtectionPolicyTriggerClientObject příkaz.
Následující příklad upraví týdenní zálohování na neděli, středu a pátek každého týdne. Pole s plánovanými daty uvádí kalendářní data a dny v týdnu pro tato data se považují za dny v týdnu. Musíte také určit, že by se tyto plány měly opakovat každý týden. Takže interval plánu je 1 a typ intervalu je 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
Přidání nového pravidla uchovávání informací
Pokud chcete přidat ochranu archivu, musíte upravit šablonu zásad.
Výchozí šablona má životní cyklus pro počáteční úložiště dat v rámci výchozího pravidla uchovávání informací. V tomto scénáři pravidlo říká, že po třech měsících odstraní zálohovaná data. Měli byste přidat nové pravidlo uchovávání informací, které definuje, kdy se data přesunou do archivu úložiště dat. To znamená, že záloha se nejprve zkopíruje do archivu úložiště dat a poté se odstraní v trezoru.
Pravidlo by také mělo definovat, jak dlouho se mají data uchovávat v archivačním úložišti dat. K vytvoření nových životních cyklů použijte New-AzDataProtectionRetentionLifeCycleClientObject příkaz. Pokud chcete tyto životní cykly přidružit k novým nebo existujícím pravidlům, použijte Edit-AzDataProtectionPolicyRetentionRuleClientObject tento příkaz.
Následující příklad vytvoří nové pravidlo uchovávání informací s názvem Monthly. V tomto pravidle se první úspěšná záloha každého měsíce uchovává v trezoru po dobu šesti měsíců, přesune se do archivní úrovně a zůstane v archivní vrstvě po dobu 24 měsíců.
$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
Přidejte značku a relevantní kritéria
Po vytvoření pravidla uchovávání informací musíte vytvořit odpovídající značku ve Trigger vlastnosti zásady zálohování. Pokud chcete vytvořit nová kritéria označování, použijte New-AzDataProtectionPolicyTagCriteriaClientObject tento příkaz. Pokud chcete aktualizovat existující značku nebo vytvořit novou značku, použijte příkaz Edit-AzDataProtectionPolicyTagClientObject .
Následující příklad vytvoří novou značku spolu s kritérii, což je první úspěšná záloha měsíce. Značka má stejný název jako odpovídající pravidlo uchovávání informací, které se má použít.
V tomto příkladu jsou kritéria značky pojmenována Monthly:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Pokud je plán více záloh za týden (každou neděli, středu a čtvrtek, jak je uvedeno v předchozím příkladu) a chcete archivovat zálohy v neděli a pátek, můžete kritéria označování změnit takto:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Vytvoření nové zásady zálohování PostgreSQL
Po úpravě šablony podle požadavků pomocí New-AzDataProtectionBackupPolicy příkazu vytvořte zásadu pomocí upravené šablony:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Konfigurace zálohování
Po vytvoření trezoru a zásad je potřeba zvážit tři kritické body pro zálohování databáze PostgreSQL ve službě Azure Database for PostgreSQL.
Pochopte klíčové entity
Databáze PostgreSQL, která se má zálohovat
Načtěte ID Resource Manageru databáze PostgreSQL, které se má zálohovat. Toto ID slouží jako identifikátor databáze. Následující příklad používá databázi pojmenovanou empdb11 pod serverem testposgresqlPostgreSQL, která se nachází ve skupině ossrg prostředků v jiném předplatném:
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Úložiště klíčů
Služba Azure Backup neukládá uživatelské jméno a heslo pro připojení k databázi PostgreSQL. Správce zálohování místo toho vloží klíče do trezoru klíčů. Služba Azure Backup pak přistupuje k trezoru klíčů, přečte klíče a přistupuje k databázi. Poznamenejte si tajný identifikátor příslušného klíče.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Zálohovací trezor
Musíte připojit trezor služby Backup k serveru PostgreSQL a pak k databázi přistupovat prostřednictvím klíčů, které jsou přítomné v trezoru klíčů. Trezor služby Backup proto vyžaduje přístup k serveru PostgreSQL a trezoru klíčů. Přístup se uděluje spravované identitě trezoru služby Backup.
Přečtěte si o příslušných oprávněních , která byste měli udělit spravované identitě trezoru služby Backup na serveru PostgreSQL a službě Azure Key Vault, kde jsou uložené klíče k databázi.
Příprava požadavku
Po nastavení všech příslušných oprávnění proveďte konfiguraci zálohování ve dvou krocích:
- Připravte požadavek pomocí příslušného trezoru, zásad a databáze PostgreSQL v příkazu
Initialize-AzDataProtectionBackupInstance. - Pomocí příkazu odešlete žádost o zálohování databáze
New-AzDataProtectionBackupInstance.
$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
Provedení zálohování na vyžádání
Pomocí příkazu Get-AzDataProtectionBackupInstance načtěte příslušnou instanci zálohování, pro kterou potřebujete provést zálohování.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Při aktivaci zálohování můžete zadat pravidlo uchovávání informací. Pokud chcete zobrazit pravidla uchovávání informací v zásadách, projděte si objekt zásad. V následujícím příkladu se zobrazí pravidlo s názvem Default . Tento článek používá toto ukázkové pravidlo pro zálohování na vyžádání.
$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
Pokud chcete aktivovat zálohování na vyžádání, použijte tento Backup-AzDataProtectionBackupInstanceAdhoc příkaz:
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Sledovat práce
Sledujte všechny úlohy pomocí příkazu Get-AzDataProtectionJob. Můžete zobrazit seznam všech úloh a načíst konkrétní podrobnosti úlohy.
Můžete také použít Az.ResourceGraph ke sledování všech úloh ve všech trezorech služby Backup.
Search-AzDataProtectionJobInAzGraph Pomocí příkazu načtěte relevantní úlohy napříč jakýmkoli trezorem služby Backup:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
Související obsah
- Obnovení databáze PostgreSQL pomocí Azure PowerShellu
- Obnovení databáze PostgreSQL pomocí webu Azure Portal, Azure CLI a rozhraní REST API
- Správa serveru Azure Database for PostgreSQL pomocí webu Azure Portal