Vytvoření zásad zálohování Azure Data Protection pro databáze Azure PostgreSQL pomocí rozhraní REST API

Uchovávání a plánování záloh se řídí zásadami zálohování. Zálohování databáze Azure PostgreSQL nabízí dlouhodobé uchovávání a podporuje denní zálohování.

Můžete znovu použít existující zásady zálohování ke konfiguraci zálohování databází PostgreSQL do trezoru nebo vytvořit zásadu zálohování pro trezor služby Azure Recovery Services pomocí rozhraní REST API.

Principy 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í archivní ochranu. Zálohovaná data, která se poprvé odešlou do trezoru, je možné přesunout do archivní vrstvy podle definovaného pravidla nebo životního cyklu. V tomto kontextu se podíváme na objekt zásad zálohování pro PostgreSQL.

  • Pravidla zásad
    • BackupRule
      • BackupParameter
        • BackupType (v tomto případě úplná záloha databáze)
        • Počáteční úložiště dat (kde budou zálohy původně přistály)
        • Trigger (způsob aktivace zálohování)
          • Na základě plánu
          • Výchozí kritéria označování (výchozí značka pro všechny naplánované zálohy. Tato značka propojuje zálohy s pravidlem uchovávání informací.
    • Výchozí pravidlo uchovávání informací (pravidlo, které se použije u všech záloh ve výchozím nastavení v počátečním úložišti dat)

Tento objekt tedy definuje, jaký typ záloh se aktivuje, jak se aktivují (prostřednictvím plánu), čím se označí, kam se ukládají (úložiště dat) a životní cyklus zálohovaných dat v úložišti dat. Výchozí objekt PowerShellu pro PostgreSQL říká, že má každý týden aktivovat úplné zálohování a přistanou do trezoru, kde jsou uložené po dobu tří měsíců.

Pokud chcete do zásady přidat archivní vrstvu, musíte se rozhodnout, kdy se data přesunou z trezoru do archivu, jak dlouho zůstanou v archivu a které z plánovaných záloh se mají označit jako archivovatelné. Takže musíte přidat pravidlo uchovávání , ve kterém se životní cyklus zálohovaných dat definuje z úložiště dat trezoru do archivního úložiště dat a jak dlouho zůstanou 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í:

  • Pravidla zásad
    • BackupRule
      • BackupParameter
        • BackupType (v tomto případě úplná záloha databáze)
        • Počáteční úložiště dat (kde budou zálohy původně přistály)
        • Trigger (způsob aktivace zálohování)
          • Na základě plánu
          • Výchozí kritéria označování (výchozí značka pro všechny naplánované zálohy. Tato značka propojuje 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 X
    • Výchozí pravidlo uchovávání informací (pravidlo, které se použije u všech záloh ve výchozím nastavení v počátečním úložišti dat)
    • Nové pravidlo uchovávání informací s názvem X
      • Životní cyklus
        • Zdrojové úložiště dat
        • Odstranit po časovém období ve zdrojovém úložišti dat
        • Kopírování do cílového úložiště dat

Pokud chcete vytvořit zásadu pro zálohování databází PostgreSQL, proveďte následující akce:

Vytvoření zásad

Důležité

Aktualizace nebo úprava existujících zásad se v současné době nepodporuje. Případně můžete vytvořit novou zásadu s požadovanými podrobnostmi a přiřadit ji příslušné instanci zálohování.

Pokud chcete vytvořit zásadu Azure Backup, použijte následující operaci PUT:

PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01

V {policyName} identifikátoru URI jsou uvedeny a {vaultName} . Další informace jsou uvedeny v textu požadavku.

Vytvoření textu požadavku

Pokud například chcete vytvořit zásadu pro zálohování POstgreSQL, tělo požadavku potřebuje následující komponenty:

Name Požaduje se Typ Popis
properties Ano BaseBackupPolicy:BackupPolicy Vlastnosti BaseBackupPolicyResource

Úplný seznam definic v textu požadavku najdete v dokumentu REST API zásad zálohování.

Příklad textu požadavku

Zásada říká:

  • Naplánovaný trigger pro týdenní zálohování a zvolte čas spuštění. (Time + P1W).
  • Úložiště dat je úložiště trezoru, protože zálohy se přímo přenášejí do trezoru.
  • Zálohy se uchovávají v trezoru po dobu tří měsíců (P3M).
{
  "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"
    }
  ]
}

Důležité

Formáty času podporují pouze DateTime; pouze Čas není podporován. Čas dne označuje čas zahájení zálohování, a ne čas, kdy se zálohování dokončí.

Pojďme výše uvedený kód JSON aktualizovat dvěma změnami – zálohováním ve více dnech v týdnu a přidáním archivního úložiště dat pro dlouhodobé uchovávání záloh databází PostgreSQL.

Následující příklad upraví týdenní zálohování, které probíhá každou neděli, středu a pátek každého týdne. Pole kalendářních dat plánu uvádí kalendářní data a dny v týdnu se berou jako dny v týdnu. Je také potřeba zadat, aby se tyto plány opakovaly každý týden. Interval plánu je tedy 1 a typ intervalu je Týdenní.

Naplánovaná aktivační událost:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "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"
          ],
          "timeZone": "UTC"
        }

Pokud chcete přidat ochranu archivu , musíte upravit json zásady následujícím způsobem:

Výše uvedený kód JSON má životní cyklus pro počáteční úložiště dat v rámci výchozího pravidla uchovávání. V tomto scénáři pravidlo říká, že se mají zálohovaná data odstranit po třech měsících. Měli byste přidat nové pravidlo uchovávání informací, které definuje, kdy se data přesunou do archivovaného úložiště dat. To znamená, že se zálohovaná data nejprve zkopírují do archivovaného úložiště dat a pak se v úložišti dat trezoru odstraní. Pravidlo by také mělo definovat doby uchovávání dat v úložišti dat archivu*. Pojmenujme toto nové pravidlo jako Měsíční a definuje, že zálohy by se měly uchovávat v úložišti dat trezoru po dobu 6 měsíců a pak se zkopírovat do archivovaného úložiště dat. Potom v úložišti dat trezoru odstraňte uchovávání dat po dobu 24 měsíců v archivačním úložišti dat a pak odstraňte data v archivačním úložišti dat.

Životní cyklus uchovávání:

"lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    },
    {
      "isDefault": false,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P6M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": {
            "copyAfter": {
              "objectType": "CopyOnExpiryOption"
            },
            "dataStore": {
              "dataStoreType": "ArchiveStore",
              "objectType": "DataStoreInfoBase"
            }
          }
        },
        {
          "deleteAfter": {
            "duration": "P24M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "ArchiveStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": null
        }
      ],
      "name": "Monthly",
      "objectType": "AzureRetentionRule"
    }

Pokaždé, když přidáte pravidlo uchovávání informací, musíte přidat odpovídající značku do vlastnosti Trigger zásady. Následující příklad vytvoří novou značku spolu s kritérii (což je první úspěšná záloha měsíce) s přesně stejným názvem jako odpovídající pravidlo uchovávání informací, které se má použít.

V tomto příkladu by kritéria značky měla mít název Měsíčně.

Kritéria označování:

{
  "criteria": [
    {
      "absoluteCriteria": [
        "FirstOfMonth"
      ],
      "objectType": "ScheduleBasedBackupCriteria"
    }
  ],
  "isDefault": false,
  "tagInfo": {
    "tagName": "Monthly"
  },
  "taggingPriority": 15
}

Po zahrnutí všech změn se json zásad zobrazí takto:

{
  "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-15T22:00:00+00:00/P1W",
            "R/2021-08-18T22:00:00+00:00/P1W",
            "R/2021-08-20T22:00:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        },
        "taggingCriteria": [
          {
            "isDefault": true,
            "tagInfo": {
              "id": "Default_",
              "tagName": "Default"
            },
            "taggingPriority": 99
          },
          {
            "criteria": [
              {
                "absoluteCriteria": [
                  "FirstOfMonth"
                ],
                "objectType": "ScheduleBasedBackupCriteria"
              }
            ],
            "isDefault": false,
            "tagInfo": {
              "tagName": "Monthly"
            },
            "taggingPriority": 15
          }
        ]
      }
    },
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    },
    {
      "isDefault": false,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P6M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": {
            "copyAfter": {
              "objectType": "CopyOnExpiryOption"
            },
            "dataStore": {
              "dataStoreType": "ArchiveStore",
              "objectType": "DataStoreInfoBase"
            }
          }
        },
        {
          "deleteAfter": {
            "duration": "P24M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "ArchiveStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": null
        }
      ],
      "name": "Monthly",
      "objectType": "AzureRetentionRule"
    }
  ]
}

Další podrobnosti o vytváření zásad najdete v dokumentu o zásadách zálohování databáze PostGreSQL .

Odpovědi

Vytvoření nebo aktualizace zásad zálohování je synchronní operace a po úspěšné operaci vrátí ok .

Název Typ Popis
200 OK BaseBackupPolicyResource OK

Ukázkové odpovědi

Po dokončení operace vrátí hodnotu 200 (OK) s obsahem zásad v textu odpovědi.

{
    "properties": {
        "policyRules": [
            {
                "backupParameters": {
                    "backupType": "Full",
                    "objectType": "AzureBackupParams"
                },
                "trigger": {
                    "schedule": {
                        "repeatingTimeIntervals": [
                            "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"
                        ],
                        "timeZone": "UTC"
                    },
                    "taggingCriteria": [
                        {
                            "tagInfo": {
                                "tagName": "Monthly",
                                "id": "Monthly_"
                            },
                            "taggingPriority": 15,
                            "isDefault": false,
                            "criteria": [
                                {
                                    "absoluteCriteria": [
                                        "FirstOfMonth"
                                    ],
                                    "objectType": "ScheduleBasedBackupCriteria"
                                }
                            ]
                        },
                        {
                            "tagInfo": {
                                "tagName": "Default",
                                "id": "Default_"
                            },
                            "taggingPriority": 99,
                            "isDefault": true
                        }
                    ],
                    "objectType": "ScheduleBasedTriggerContext"
                },
                "dataStore": {
                    "dataStoreType": "VaultStore",
                    "objectType": "DataStoreInfoBase"
                },
                "name": "BackupWeekly",
                "objectType": "AzureBackupRule"
            },
            {
                "lifecycles": [
                    {
                        "deleteAfter": {
                            "objectType": "AbsoluteDeleteOption",
                            "duration": "P6M"
                        },
                        "targetDataStoreCopySettings": [
                            {
                                "dataStore": {
                                    "dataStoreType": "ArchiveStore",
                                    "objectType": "DataStoreInfoBase"
                                },
                                "copyAfter": {
                                    "objectType": "CopyOnExpiryOption"
                                }
                            }
                        ],
                        "sourceDataStore": {
                            "dataStoreType": "VaultStore",
                            "objectType": "DataStoreInfoBase"
                        }
                    },
                    {
                        "deleteAfter": {
                            "objectType": "AbsoluteDeleteOption",
                            "duration": "P24M"
                        },
                        "targetDataStoreCopySettings": [],
                        "sourceDataStore": {
                            "dataStoreType": "ArchiveStore",
                            "objectType": "DataStoreInfoBase"
                        }
                    }
                ],
                "isDefault": false,
                "name": "Monthly",
                "objectType": "AzureRetentionRule"
            },
            {
                "lifecycles": [
                    {
                        "deleteAfter": {
                            "objectType": "AbsoluteDeleteOption",
                            "duration": "P3M"
                        },
                        "targetDataStoreCopySettings": [],
                        "sourceDataStore": {
                            "dataStoreType": "VaultStore",
                            "objectType": "DataStoreInfoBase"
                        }
                    }
                ],
                "isDefault": true,
                "name": "Default",
                "objectType": "AzureRetentionRule"
            }
        ],
        "datasourceTypes": [
            "Microsoft.DBforPostgreSQL/servers/databases"
        ],
        "objectType": "BackupPolicy"
    },
    "id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/DebRG1/providers/Microsoft.DataProtection/backupVaults/DebBackupVault/backupPolicies/OssPolicy1",
    "name": "OssPolicy1",
    "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}

Další kroky

Povolení ochrany disků Azure

Další informace o Azure Backup rozhraníCH REST API najdete v následujících článcích: