你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本快速入门介绍如何通过 Azure CLI 创建备份策略来保护 Azure Database for PostgreSQL - Flexible Server。
Azure Database for PostgreSQL - 灵活服务器的 Azure 备份策略可定义备份创建方式和时间、恢复点的保留期以及数据保护和恢复规则。 Azure 备份 允许使用多个客户端(例如 Azure 门户、 PowerShell、 CLI、 Azure 资源管理器、 Bicep、 Terraform 等)备份 Azure PostgreSQL 灵活服务器。
先决条件
在为 Azure Database for PostgreSQL 灵活服务器创建备份策略之前,请确保满足以下先决条件:
- 查看备份 Azure Database for PostgreSQL - 灵活服务器支持的场景和限制。
- 创建备份保管库 以存储数据库的恢复点。
创建备份策略
若要创建备份策略,请执行以下步骤:
- 了解 PostgreSQL - 灵活服务器备份策略
- 检索策略模板
- 修改策略模板
- 创建策略
了解 PostgreSQL - 灵活服务器备份策略
磁盘备份每天提供多个备份,Blob 备份是连续备份,不会触发任何触发器。 现在,让我们了解 PostgreSQL 灵活服务器的备份策略对象。
- PolicyRule
- BackupRule
- BackupParameter
- BackupType (此方案中的完整数据库备份)
- 初始数据存储(备份最初应到达的位置)
- 触发器(如何触发备份)
- 基于计划
- 默认标记条件(所有计划备份的默认“标记”。此标记将备份链接到保留规则)
- BackupParameter
- 默认保留规则(该规则默认应用于初始数据存储上的所有备份)
- BackupRule
因此,此对象定义:
- 触发的备份类型
- 触发策略的方式(通过计划)
- 实施到备份策略的标记
- 数据存储的位置(如存储库)
- 数据存储中备份数据的生命周期
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