你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure CLI 为 Azure Database for PostgreSQL 灵活服务器创建备份策略

本快速入门介绍如何通过 Azure CLI 创建备份策略来保护 Azure Database for PostgreSQL - Flexible Server。

Azure Database for PostgreSQL - 灵活服务器的 Azure 备份策略可定义备份创建方式和时间、恢复点的保留期以及数据保护和恢复规则。 Azure 备份 允许使用多个客户端(例如 Azure 门户PowerShellCLIAzure 资源管理器BicepTerraform 等)备份 Azure PostgreSQL 灵活服务器。

先决条件

在为 Azure Database for PostgreSQL 灵活服务器创建备份策略之前,请确保满足以下先决条件:

创建备份策略

若要创建备份策略,请执行以下步骤:

  1. 了解 PostgreSQL - 灵活服务器备份策略
  2. 检索策略模板
  3. 修改策略模板
  4. 创建策略

了解 PostgreSQL - 灵活服务器备份策略

磁盘备份每天提供多个备份,Blob 备份是连续备份,不会触发任何触发器。 现在,让我们了解 PostgreSQL 灵活服务器的备份策略对象。

  • PolicyRule
    • BackupRule
      • BackupParameter
        • BackupType (此方案中的完整数据库备份)
        • 初始数据存储(备份最初应到达的位置)
        • 触发器(如何触发备份)
          • 基于计划
          • 默认标记条件(所有计划备份的默认“标记”。此标记将备份链接到保留规则)
    • 默认保留规则(该规则默认应用于初始数据存储上的所有备份)

因此,此对象定义:

  • 触发的备份类型
  • 触发策略的方式(通过计划)
  • 实施到备份策略的标记
  • 数据存储的位置(如存储库)
  • 数据存储中备份数据的生命周期

PostgreSQL 灵活服务器的默认的 PowerShell 对象每周触发一个完整备份,并到达保管库,保存在那里三个月。

检索策略模板

若要了解 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”,间隔类型为“每周”。

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的新保留规则,其中每个月的第一个成功备份应在保管库中保留 6 个月

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 命令更新现有标记或创建新标记。

以下示例将创建一个新标记和条件,这是当月的第一个成功备份。 标记与要应用的相应保留规则同名。

本例中的标记条件应命名为“每月”。

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 CLI 为 Azure Database for PostgreSQL 灵活服务器配置备份