Поделиться через


Краткое руководство: Создание политики резервного копирования для Azure Database для PostgreSQL - Flexible Server с использованием Azure CLI

В этом кратком руководстве описывается создание политики резервного копирования для защиты базы данных Azure для PostgreSQL — гибкого сервера с помощью Azure CLI.

Политика Резервного копирования Azure для Базы данных Azure для PostgreSQL — гибкий сервер определяет способ и время создания резервных копий, период хранения для точек восстановления и правила защиты и восстановления данных. Azure Backup позволяет создать резервную копию гибкого сервера Azure PostgreSQL с помощью нескольких клиентов, таких как портал Azure, PowerShell, CLI, Azure Resource Manager, Bicep, Terraform и т. д.

Предпосылки

Перед созданием политики резервного копирования для Базы данных Azure для PostgreSQL — гибкий сервер убедитесь, что выполнены следующие предварительные требования:

Создание политики резервного копирования

Чтобы создать политику резервного копирования, выполните следующие действия.

  1. Политика резервного копирования гибкого сервера PostgreSQL
  2. Извлеките шаблон политики
  3. Изменение шаблона политики
  4. Создание политики

Политика резервного копирования гибкого сервера PostgreSQL

Дисковое резервное копирование предоставляет возможность нескольких резервных копий в день, тогда как резервное копирование BLOB-объектов является непрерывным процессом без триггера. Теперь рассмотрим объект политики резервного копирования для PostgreSQL — гибкий сервер.

  • Правило политики
    • BackupRule
      • BackupParameter
        • BackupType (полная резервная копия базы данных в этом сценарии)
        • Начальное хранилище данных (где резервные копии должны находиться изначально)
        • Триггер (активация резервной копии)
          • По расписанию
          • Стандартные условия добавления тегов (тег по умолчанию для всех запланированных операций резервного копирования; этот тег связывает резервные копии с правилом хранения)
    • Правило хранения по умолчанию (правило, применяемое ко всем резервным копиям по умолчанию в исходном хранилище данных)

Поэтому этот объект определяет следующее:

  • Тип запускаемых резервных копий
  • Способ активации политик (по расписанию)
  • Теги, реализованные в политике резервного копирования
  • Расположение, в котором хранятся данные (хранилище данных)
  • Жизненный цикл резервных данных в хранилище данных

Объект PowerShell по умолчанию для PostgreSQL — Гибкий сервер активирует полную резервную копию каждую неделю, и она поступает в хранилище, где хранится в течение трех месяцев.

Извлеките шаблон политики

Чтобы понять внутренние компоненты политики резервного копирования для гибкого сервера базы данных Azure PostgreSQL, получите шаблон политики с помощью команды az dataprotection backup-policy get-default-policy-template. Эта команда возвращает шаблон политики по умолчанию для заданного типа источника данных. Используйте этот шаблон политики для создания новой политики.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQLFlexibleServer

{
  "datasourceTypes": [
    "Microsoft.DBforPostgreSQL/flexibleServers"
  ],
  "name": "OssFlexiblePolicy1",
  "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"
    }
  ]
}

Шаблон политики состоит из триггера (определяет, что активирует резервную копию) и жизненный цикл (решает, когда следует удалять, копировать, перемещать резервную копию). В Azure PostgreSQL — резервное копирование гибкой базы данных сервера, значение по умолчанию для триггера — это запланированный еженедельный триггер (одна резервная копия каждые 7 дней), и каждая резервная копия сохраняется в течение трех месяцев.

Запланированный триггер:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2021-08-15T06:30:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        }

Жизненный цикл правила хранения по умолчанию:


{
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }

Это важно

Расписание резервного копирования соответствует формату длительности ISO 8601. Однако префикс R повторяющегося интервала не поддерживается, так как резервные копии настроены на неограниченное время. Любое значение, указанное с параметром R , будет игнорироваться.

Изменение шаблона политики

Это важно

В Azure PowerShell объекты можно использовать в качестве промежуточных расположений для выполнения всех изменений. В Azure CLI необходимо использовать файлы, так как нет понятия "Объекты". Каждая операция редактирования должна быть перенаправлена в новый файл, где содержимое считывается из входного файла и перенаправляется в выходной файл. Позже вы можете переименовать файл, как требуется, при использовании в скрипте.

Изменение расписания

Шаблон политики по умолчанию предлагает резервное копирование один раз в неделю. Вы можете изменить расписание резервного копирования, чтобы оно выполнялось несколько дней в неделю. Чтобы изменить расписание, используйте az dataprotection backup-policy trigger set команду.

В следующем примере еженедельное резервное копирование изменяется на резервное копирование каждую неделю в воскресенье, среду и пятницу. В массиве дат расписания указаны даты, а дни недели, соответствующие этим датам, принимаются как дни недели. Кроме того, укажите, что эти расписания должны повторяться каждую неделю. Таким образом, интервал расписания — 1, а тип интервала — 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

Добавление нового правила хранения

Шаблон по умолчанию имеет жизненный цикл для исходного хранилища данных в правиле хранения по умолчанию. В этом сценарии правило удаляет данные резервной копии через три месяца. Используйте команду az dataprotection backup-policy retention-rule create-lifecycle, чтобы создать новые жизненные циклы, и команду az dataprotection backup-policy retention-rule set, чтобы связать их с новыми или существующими правилами.

В следующем примере создается новое правило хранения с именем Monthly, где первая успешная резервная копия каждого месяца должна храниться в хранилище в течение шести месяцев.

az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore > VaultLifeCycle.JSON

az dataprotection backup-policy retention-rule set --lifecycles .\VaultLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.json > AddedRetentionRulePolicy.JSON

Добавление тега и соответствующих критериев

После создания правила хранения необходимо создать соответствующий тег в свойстве Trigger политики резервного копирования. az dataprotection backup-policy tag create-absolute-criteria Используйте команду, чтобы создать новые критерии тегов и использовать az dataprotection backup-policy tag set команду для обновления существующего тега или создания нового тега.

В следующем примере создается новый тег и критерий, определяющий первую успешную резервную копию за месяц. Имя этого тега совпадает с именем правила хранения, которое здесь нужно применить.

В этом примере условия тега должны называться 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

Например, если расписание состоит из нескольких резервных копий в неделю (каждую воскресенье, среду, четверг, как указано в примере), и вы хотите архивировать резервные копии воскресенье и пятницу, то критерии тегов можно изменить следующим образом, используя az dataprotection backup-policy tag create-generic-criteria команду.

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

Создание политики

После изменения шаблона в соответствии с требованиями используйте az dataprotection backup-policy create команду для создания политики с помощью измененного шаблона.

az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault

Следующие шаги

Настройте резервное копирование для Базы данных Azure для PostgreSQL — гибкий сервер с помощью Azure CLI.