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

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

Existující zásady zálohování můžete opakovaně použít ke konfiguraci zálohování databází PostgreSQL do trezoru nebo k vytvoření zásad zálohování trezoru služby Azure Recovery Services pomocí rozhraní REST API.

Principy zásad zálohování PostgreSQL

Zálohování disku sice nabízí více záloh za den a zálohování objektů blob je průběžná záloha bez aktivační události, zálohování PostgreSQL nabízí ochranu archivu. Záložní data, která se poprvé posílala do trezoru, se mohou přesunout do archivační vrstvy podle definovaného pravidla nebo životního cyklu. V tomto kontextu se podívejme na objekt zásad zálohování pro PostgreSQL.

  • Pravidlo 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 na začátku)
        • Aktivační událost (aktivace zálohování)
          • Na základě plánu
          • Výchozí kritéria označování (výchozí značka pro všechny plánované zálohy. Tato značka pro propojení záloh s pravidlem uchovávání informací)
    • Výchozí pravidlo uchovávání informací (pravidlo, které se ve výchozím nastavení použije pro všechny zálohy v počátečním úložiště dat)

Tento objekt tedy definuje, jaký typ záloh se aktivuje, jak se spouští (prostřednictvím plánu), čím jsou označené, kde se nachází (úložiště dat) a životní cyklus záložních dat v datovém obchodě. Výchozí objekt PowerShellu pro PostgreSQL říká, že každý týden spustí úplnou zálohu a do trezoru, kde jsou uložené po dobu tří měsíců.

Pokud chcete přidat archivační vrstvu do zásad, musíte se rozhodnout, kdy se data přesunou z trezoru do archivu, jak dlouho zůstanou data v archivu a které z plánovaných záloh by měly být označené jako archivovatelné. Proto musíte přidat pravidlo uchovávání informací, ve kterém bude životní cyklus záložních dat definovaný z úložiště dat trezoru do úložiště dat archivu a jak dlouho zůstanou v úložišti archivu. Pak musíte přidat značku, která označí plánované zálohy jako oprávněné k archivaci. Výsledný objekt PowerShellu je následující:

  • Pravidlo 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 na začátku)
        • Aktivační událost (aktivace zálohování)
          • Na základě plánu
          • Výchozí kritéria označování (výchozí značka pro všechny plánované zálohy. Tato značka pro propojení záloh 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 ve výchozím nastavení použije pro všechny zálohy v počátečním úložiště dat)
    • Nové pravidlo uchovávání informací s názvem X
      • Životní cyklus
        • Zdrojové úložiště dat
        • Delete After time period in source datastore
        • 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ásady

Důležité:

V současné době není aktualizace nebo úprava existující zásady podporovaná. Můžete také vytvořit novou zásadu s požadovanými podrobnostmi a přiřadit ji příslušné záložní instanci.

Pokud chcete vytvořit zásadu Zálohování Azure, 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

A {policyName}{vaultName} jsou k dispozici v identifikátoru URI. Další informace najdete v textu žádosti.

Vytvoření textu žádosti

Pokud chcete například vytvořit zásadu pro zálohování POstgreSQL, potřebuje text žádosti následující součásti:

Jméno Povinné Typ Popis
vlastnosti Pravda BaseBackupPolicy:BackupPolicy Vlastnosti BaseBackupPolicyResource

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

Příklad textu žádosti

Zásada říká:

  • Plánovaná aktivační událost pro týdenní zálohování a výběr počátečního času. (Čas +P1W).
  • Úložiště dat je úložiště trezoru, protože zálohy se přenášejí přímo do trezoru.
  • Zálohy se v trezoru zachovají 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í jenom datum a čas. Pouze čas není podporovaný. Čas dne označuje čas zahájení zálohování a ne čas dokončení zálohování.

Aktualizujme výše uvedené JSON dvěma změnami – zálohování na několik dní v týdnu a přidání archivního úložiště dat pro dlouhodobé uchovávání záloh databáze PostgreSQL.

Následující příklad upravuje týdenní zálohování tak, aby se zálohy odehrála každou neděli, středu a pátek každého týdne. Pole kalendářních dat plánu zmiňuje data a dny v týdnu těchto dat se zachytá jako dny v týdnu. Je také potřeba zadat, aby se tyto plány opakoval každý týden. Interval plánu je tedy 1 a typ intervalu je Týdně.

Plá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 zásady JSON takto:

Výše uvedený json má životní cyklus pro počáteční úložiště dat pod výchozím pravidlem uchovávání informací. V tomto scénáři pravidlo říká, že se zálohová data odstraní 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 archivačního úložiště dat, to znamená, že se záložní data nejdřív zkopírují do úložiště dat archivu a odstraní se v úložišti dat trezoru. Pravidlo by taky mělo definovat dobu trvání, aby se data uchová v archivu* úložiště dat. Pojmnujte toto nové pravidlo jako Měsíční a definuje, že zálohy se mají uchovávat v úložišti dat trezoru po dobu 6 měsíců a pak se zkopírují do archivu úložiště dat. Potom data v úložišti dat úložiště archivu odstraňte po dobu 24 měsíců a potom je odstraňte v úložišti dat archivu.

Životní cyklus uchovávání informací:

"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 do vlastnosti Aktivační událost zásady přidat odpovídající značku. Následující příklad vytvoří novou značku spolu s kritérii (což je první úspěšné zálohování měsíce) se stejným názvem jako odpovídající pravidlo uchovávání informací, které se má použít.

V tomto příkladu by měla být kritéria značek pojmenována 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 zásad 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í hodnotu OK.

Jméno Typ Popis
200 OK BaseBackupPolicyResource OK

Příklad odpovědí

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 pro disky Azure

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