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 databáze PostgreSQL ve službě Azure Virtual Machines pomocí Azure CLI. Zálohování můžete nakonfigurovat také pomocí webu Azure Portal, Azure PowerShellu 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í služby Azure Database for PostgreSQL.
Vytvořit záložní trezor
Zálohovací trezor je úložná entita v Azure. Ukládá zálohovaná data pro nové úlohy, které Azure Backup podporuje, jako jsou servery Azure Database for PostgreSQL, objekty blob v účtu úložiště a disky 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 az dataprotection vault create vytvořte úložiště záloh.
Zjistěte více o vytváření trezoru záloh.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"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í az dataprotection backup-policy get-default-policy-template 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.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQL
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"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ů.
Naplánovaná aktivační událost
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
}
Výchozí životní cyklus pro pravidlo vazby
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
Úprava šablony zásad
V Azure PowerShellu můžete jako pracovní umístění použít objekty k provedení všech úprav. V Azure CLI musíte použít soubory, protože neexistuje žádný pojem o objektech. Každá operace úprav by měla být přesměrována na nový soubor, kde se obsah načítá ze vstupního souboru a přesměruje se do výstupního souboru. Později můžete soubor přejmenovat podle potřeby při jeho použití ve skriptu.
Ú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 plán upravit, použijte az dataprotection backup-policy trigger set 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.
az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
]
az dataprotection backup-policy trigger set --policy .\OSSPolicy.json --schedule R/2021-08-15T22:00:00+00:00/P1W R/2021-08-18T22:00:00+00:00/P1W R/2021-08-20T22:00:00+00:00/P1W > EditedOSSPolicy.json
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 az dataprotection backup-policy retention-rule create-lifecycle příkaz. Pokud chcete tyto životní cykly přidružit k novým nebo existujícím pravidlům, použijte az dataprotection backup-policy retention-rule set 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ů.
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore --target-datastore ArchiveStore --copy-option CopyOnExpiryOption > VaultToArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 24 --retention-duration-type Months -source-datastore ArchiveStore > OnArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule set --lifecycles .\VaultToArchiveLifeCycle.JSON .\OnArchiveLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.JSON > AddedRetentionRulePolicy.JSON
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 az dataprotection backup-policy tag create-absolute-criteria tento příkaz. Pokud chcete aktualizovat existující značku nebo vytvořit novou značku, použijte az dataprotection backup-policy tag set příkaz.
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:
az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
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 změnit kritéria označování pomocí az dataprotection backup-policy tag create-generic-criteria příkazu:
az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
Vytvoření nové zásady zálohování PostgreSQL
Po úpravě šablony podle požadavků pomocí az dataprotection backup-policy create příkazu vytvořte zásadu pomocí upravené šablony:
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
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. Příklad používá Bash.
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.
Následující příklad používá Bash. Poznamenejte si tajný identifikátor příslušného klíče.
keyURI="https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Záložní úložiště
Trezor služby Backup se musí připojit k serveru PostgreSQL a pak přistupovat k databázi 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 oprávněních , která byste měli udělit spravované identitě trezoru služby Backup na serveru PostgreSQL a trezoru klíčů, který ukládá klíče do databáze.
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
az dataprotection backup-instance initialize. - Pomocí příkazu odešlete žádost o zálohování databáze
az dataprotection backup-instance create.
az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQL -l <vault-location> --policy-id <policy_arm_id> --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
az dataprotection backup-instance create --resource-group testBkpVaultRG --vault-name TestBkpVault TestBkpvault --backup-instance .\OSSBkpInstance.JSON
Spustit zálohování na vyžádání
Při aktivaci zálohování musíte zadat pravidlo uchovávání informací. Pokud chcete zobrazit pravidla uchovávání informací v zásadách, projděte si soubor JSON zásad. V následujícím příkladu existují dvě pravidla uchovávání s názvy Default a Monthly. Tento článek používá Monthly pravidlo pro zálohování na vyžádání.
az dataprotection backup-policy show -g ossdemorg --vault-name ossdemovault-1 --subscription e3d2d341-4ddb-4c5d-9121-69b7e719485e --name osspol5
{
"id": "/subscriptions/e3d2d341-4ddb-4c5d-9121-69b7e719485e/resourceGroups/ossdemorg/providers/Microsoft.DataProtection/backupVaults/ossdemovault-1/backupPolicies/osspol5",
"name": "osspol5",
"properties": {
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-04T20:00:00+00:00/P1W",
"R/2020-04-01T20:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"daysOfMonth": null,
"daysOfTheWeek": null,
"monthsOfYear": null,
"objectType": "ScheduleBasedBackupCriteria",
"scheduleTimes": null,
"weeksOfTheMonth": null
}
],
"isDefault": false,
"tagInfo": {
"eTag": null,
"id": "Monthly_",
"tagName": "Monthly"
},
"taggingPriority": 15
},
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P10Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P1Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "ossdemorg",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Pokud chcete aktivovat zálohování na vyžádání, použijte tento az dataprotection backup-instance adhoc-backup příkaz:
az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault
Sledování prací
Sledujte všechny úlohy pomocí příkazu az dataprotection job list. 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. Pomocí příkazu az dataprotection job list-from-resourcegraph načtěte relevantní úlohy napříč úložišti zálohování:
az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --status Completed
Související obsah
- Obnovte databáze PostgreSQL pomocí Azure CLI.
- Obnovení databáze PostgreSQL pomocí webu Azure Portal, Azure PowerShellu a rozhraní REST API
- Správa serveru Azure Database for PostgreSQL pomocí webu Azure Portal