Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Политика резервного копирования управляет хранением и расписанием резервных копий базы данных PostgreSQL в Базе данных Azure для PostgreSQL. База данных Azure для PostgreSQL обеспечивает долгосрочное хранение резервных копий базы данных и поддерживает резервное копирование в день.
Можно повторно использовать существующую политику резервного копирования для настройки резервных копий для баз данных PostgreSQL в хранилище или создать политику резервного копирования для хранилища служб восстановления Azure с помощью REST API защиты данных для Azure Backup. В этой статье вы создадите политику резервного копирования.
Общие сведения о политиках резервного копирования PostgreSQL
В то время как резервное копирование дисков предлагает несколько резервных копий в день, а резервное копирование BLOB-объектов — это непрерывная резервная копия без триггера, Служба архивации PostgreSQL обеспечивает защиту архива. Данные резервного копирования, которые сначала отправляются в хранилище, можно переместить на архивный уровень в соответствии с определенным правилом или жизненным циклом.
В этом контексте следующая иерархия поможет понять объект политики резервного копирования для PostgreSQL:
- Правило политики
- Правило резервного копирования
- Параметр резервного копирования
- Тип резервного копирования (полная резервная копия базы данных в данном случае)
- Начальное хранилище данных (где изначально резервная копия)
- Триггер (активация резервной копии)
- Расписание
- Критерии тегов по умолчанию (тег по умолчанию, который связывает все запланированные резервные копии с правилом хранения).
- Параметр резервного копирования
- Правило хранения по умолчанию (правило, применяемое ко всем резервным копиям по умолчанию в исходном хранилище данных)
- Правило резервного копирования
Объект политики определяет, какие типы резервных копий активируются, как они активируются (с помощью расписания), то, что они помечены, где они находятся (хранилище данных) и жизненный цикл их данных в хранилище данных.
Объект PowerShell по умолчанию для PostgreSQL говорит, чтобы активировать полную резервную копию каждую неделю. Резервные копии достигают хранилища, где они хранятся в течение трех месяцев.
Если вы хотите добавить уровень архива в политику, необходимо решить, когда данные будут перемещены из хранилища в архив, как долго данные будут оставаться в архиве, и какие из запланированных резервных копий должны быть помечены как архивируемые. Необходимо добавить правило хранения, определяющее жизненный цикл резервных данных из хранилища данных в архивное хранилище данных. Правило хранения также определяет, как долго данные резервного копирования будут оставаться в архивном хранилище данных. Затем необходимо добавить тег, который помечает запланированные резервные копии как подходящие для архивирования.
Результирующий объект PowerShell выглядит следующим образом:
- Правило политики
- Правило резервного копирования
- Параметр резервного копирования
- Тип резервного копирования (полная резервная копия базы данных в данном случае)
- Начальное хранилище данных (где изначально резервная копия)
- Триггер (активация резервной копии)
- Расписание
- Критерии тегов по умолчанию (тег по умолчанию, который связывает все запланированные резервные копии с правилом хранения)
- Новые критерии тегов для нового правила хранения с тем же именем
- Параметр резервного копирования
- Правило хранения по умолчанию (правило, применяемое ко всем резервным копиям по умолчанию в исходном хранилище данных)
- Новое правило хранения
- Жизненный цикл
- Исходное хранилище данных
- Период времени удаления в исходном хранилище данных
- Копирование в целевое хранилище данных
- Жизненный цикл
- Правило резервного копирования
Создание политики
Внимание
В настоящее время обновление или изменение существующей политики не поддерживается. Вместо этого создайте новую политику с необходимыми сведениями и назначьте ее соответствующему экземпляру резервного копирования.
Чтобы создать политику резервного копирования, используйте следующую PUT операцию:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
Универсальный {policyName} код ресурса (URI) предоставляет и {vaultName} значения. Текст запроса предоставляет дополнительные сведения.
Создание текста запроса
Чтобы создать политику резервного копирования PostgreSQL, текст запроса должен иметь следующие компоненты:
| Имя | Обязательно | Тип | Описание |
|---|---|---|---|
properties |
true |
BaseBackupPolicy: BackupPolicy |
свойства BaseBackupPolicyResource |
Полный список определений в тексте запроса см. в политиках резервного копирования REST API.
Примеры текста запроса
Политика включает:
- Триггер планируется для еженедельной резервной копии в выбранное время начала (время +
P1W). - Хранилище данных — это хранилище хранилища, так как резервные копии передаются непосредственно в хранилище.
- Резервные копии хранятся в хранилище в течение трех месяцев (
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"
}
]
}
Внимание
Поддерживаются только DateTimeформаты времени. Функция Time не поддерживается. Время дня указывает время начала резервного копирования, а не время окончания.
Давайте обновим предыдущий json с двумя изменениями:
- Добавьте резервные копии в несколько дней недели.
- Добавьте архивное хранилище данных для долгосрочного хранения резервных копий базы данных PostgreSQL.
Следующий пример изменяет еженедельную резервную копию в воскресенье, среду и пятницу каждой недели. Массив дат расписания упоминает даты и дни недели для этих дат принимаются в качестве дней недели. Кроме того, необходимо указать, что эти расписания должны повторяться каждую неделю. Таким образом, интервал расписания и 1 тип интервала .Weekly
Запланированный триггер
"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"
}
Если вы хотите добавить защиту архива, необходимо изменить json политики.
Жизненный цикл хранения
Предыдущий код JSON имеет жизненный цикл для исходного хранилища данных в правиле хранения по умолчанию. В этом сценарии правило предписывает удалять резервные копии данных через три месяца. Необходимо добавить новое правило хранения, определяющее, когда данные перемещаются в архивное хранилище данных. То есть данные резервного копирования сначала копируются в архивное хранилище данных, а затем удаляются в хранилище данных хранилища.
Кроме того, правило должно определить длительность хранения данных в архивном хранилище данных. Давайте назовем это новое правило Monthly. Он определяет, что резервные копии должны храниться в хранилище данных хранилища в течение 6 месяцев, а затем скопированы в архивное хранилище данных. Затем удалите резервные копии в хранилище данных хранилища и сохраните данные в течение 24 месяцев в архивном хранилище данных. Наконец, удалите данные в архивном хранилище данных.
"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"
}
Критерии тегов
При каждом добавлении правила хранения необходимо добавить соответствующий тег в Trigger свойство политики. В следующем примере создается новый тег вместе с критериями (которая является первой успешной резервной копией месяца) с точно таким же именем, как и соответствующее правило хранения для применения.
В этом примере критерии тега должны называться Monthly:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
После включения всех изменений отображается json политики следующим образом:
{
"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"
}
]
}
Дополнительные сведения о создании политики см. в разделе "Создание политики резервного копирования".
Проверка ответа
Создание или обновление политики резервного копирования — это синхронная операция. После успешной операции он возвращает следующий ответ состояния с содержимым политики в тексте ответа.
| Имя | Тип | Описание |
|---|---|---|
200 OK |
BaseBackupPolicyResource |
Операция завершена. |
Пример ответа
{
"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"
}
Связанный контент
- Резервное копирование дисков Azure с помощью REST API защиты данных.
- REST API защиты данных Azure Backup.
- Справочник по REST API Azure.
- Отслеживание заданий резервного копирования и восстановления с помощью REST API в Azure Backup.
- Управление сервером Базы данных Azure для PostgreSQL с помощью портала Azure.