你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本快速入门介绍如何使用 Azure PowerShell 创建备份策略,以保护 Azure Database for PostgreSQL Flexible 服务器。
Azure Database for PostgreSQL 灵活服务器的 Azure 备份策略定义备份创建方式和时间、恢复点的保留期以及数据保护和恢复规则。 Azure 备份 允许使用多个客户端(例如 Azure 门户、 PowerShell、 CLI、 Azure 资源管理器、 Bicep、 Terraform 等)备份 Azure PostgreSQL 灵活服务器。
先决条件
在为 Azure Database for PostgreSQL 灵活服务器创建备份策略之前,请确保满足以下先决条件:
- 查看备份 Azure Database for PostgreSQL - 灵活服务器支持的场景和限制。
- 创建备份保管库 以存储数据库的恢复点。
创建备份策略
若要为 PostgreSQL 灵活服务器创建备份策略,请执行以下步骤:
- 了解 PostgreSQL - 灵活服务器备份策略
- 检索策略模板
- 修改策略模板
- 创建策略
了解 PostgreSQL 灵活服务器备份策略
磁盘备份每天提供多个备份,Blob 备份是连续备份,不会触发任何触发器。 现在,让我们了解 PostgreSQL 灵活服务器的备份策略对象。
- PolicyRule
- BackupRule
- BackupParameter
- BackupType (此方案中的完整数据库备份)
- 初始数据存储(备份最初到达的位置)
- 触发器(如何触发备份)
- 基于计划
- 默认标记条件(所有计划备份的默认“标记”。此标记将备份链接到保留规则)
- BackupParameter
- 默认保留规则(在初始数据存储上默认应用于所有备份的规则)
- BackupRule
因此,此对象定义:
- 触发的备份类型
- 触发策略的方式(通过计划)
- 实施到备份策略的标记
- 数据存储的位置(存储库)
- 数据存储中备份数据的生命周期
PostgreSQL - 灵活服务器的默认 PowerShell 对象每周触发一次完整备份,它们将访问保管库(它们将在其中存储三个月)。
检索策略模板
若要了解 Azure PostgreSQL 灵活服务器数据库备份的备份策略的内部组件,请使用 Get-AzDataProtectionPolicyTemplate cmdlet 检索策略模板。 此 cmdlet 返回给定数据源类型的默认策略模板。 使用此策略模板创建新策略。
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPGFlexServer
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/flexibleServers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
策略模板由触发器(决定哪些触发器触发备份)和生命周期(决定何时删除、复制、移动备份)组成。 在 Azure PostgreSQL 灵活服务器数据库备份中,触发机制的默认值是计划的 每周 触发(每 7 天备份一次),将每个备份保留 三个月。
JSON
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
默认保留规则生命周期::
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
修改策略模板
修改计划
默认策略模板每周提供一次备份。 可以将备份计划修改为每周发生多天。 若要修改计划,请使用 Edit-AzDataProtectionPolicyTriggerClientObject cmdlet。
以下示例将修改每周备份计划,于每星期的周日、周三和周五进行备份。 计划日期数组会提及日期,这些日期中的几个星期几会被视为一周中相应的那几天。 此外,请指定这些计划应每周重复一次。 因此,计划间隔为 1 ,间隔类型为 “每周”。
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
添加新保留规则
默认模板具有默认保留规则下的初始数据存储的生命周期。 在此方案中,规则在 三个月后删除备份数据。 使用 New-AzDataProtectionRetentionLifeCycleClientObject cmdlet 创建新的生命周期,并使用 Edit-AzDataProtectionPolicyRetentionRuleClientObject cmdlet 将其与新规则或现有规则进行关联。
以下示例创建名为 Monthly 的新保留规则,其中每个月的第一个成功备份应在保管库中保留 6 个月。
$VaultLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultLifeCycle -IsDefault $false
添加标记和相关条件
创建保留规则后,必须在备份策略的 Trigger 属性中创建相应的标记。 使用 New-AzDataProtectionPolicyTagCriteriaClientObject cmdlet 创建新的标记条件,并使用 Edit-AzDataProtectionPolicyTagClientObject cmdlet 更新现有标记或创建新标记。
以下示例创建一个新标记以及条件,即月份的第一个成功备份。 标记与要应用的相应保留规则同名。
在此示例中,标记条件应命名 为 Monthly。
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
如果计划是每周多个备份(如示例中指定的每个星期日、星期三、星期四),并且你想要存档星期日和星期五备份,则可以使用 New-AzDataProtectionPolicyTagCriteriaClientObject cmdlet 按如下所示更改标记条件。
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
创建策略
根据要求修改模板后,使用 New-AzDataProtectionBackupPolicy cmdlet 使用修改后的模板创建策略。
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
后续步骤
使用 Azure PowerShell 为 Azure Database for PostgreSQL 灵活服务器配置备份。