教程:使用 Azure CLI 管理 Azure VM 中的 SAP HANA 数据库
Azure CLI 用于从命令行或通过脚本创建和管理 Azure 资源。 本文档详细介绍如何在 Azure VM 上管理已备份的 SAP HANA 数据库 - 所有这些操作都使用 Azure CLI。 还可以使用 Azure 门户执行这些步骤。
使用 Azure CLI 运行 CLI 命令。
完成本教程后,可执行以下操作:
- 监视备份和还原作业
- 保护添加到 SAP HANA 实例的新数据库
- 更改策略
- 停止保护
- 恢复保护
如果你已按照使用 CLI 在 Azure 中备份 SAP HANA 数据库中的说明备份 SAP HANA 数据库,则要使用以下资源:
- 名为 saphanaResourceGroup 的资源组
- 名为 saphanaVault 的保管库
- 名为 VMAppContainer;Compute;saphanaResourceGroup;saphanaVM 的受保护容器
- 名为 saphanadatabase;hxe;hxe 的已备份数据库/项
- chinanorth2 区域中的资源
借助 Azure CLI 可轻松管理使用 Azure 备份进行备份的 Azure VM 上运行的 SAP HANA 数据库。 本教程详细介绍了每个管理操作。
注意
若要详细了解支持的配置和方案,请参阅 SAP HANA 备份支持矩阵。
监视备份和还原作业
若要监视已完成或当前正在运行的作业(备份或还原),请使用 az backup job list cmdlet。 通过 CLI,还可暂停当前正在运行的作业或等待作业完成。
az backup job list --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--output table
输出将如下所示:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed hxe 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed hxe [hxehost] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed hxe [hxehost] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed hxe [hxehost] 2019-12-03T05:44:51.081607+00:00
更改策略
若要更改 SAP HANA 备份配置基础上的策略,请使用 az backup policy set cmdlet。 此 cmdlet 中的 name 参数是指要更改其策略的备份项。 对于本教程,我们会将 SAP HANA 数据库 saphanadatabase;hxe;hxe 的策略替换为新策略 newsaphanaPolicy 。 可使用 az backup policy create cmdlet 创建新策略。
az backup item set policy --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
--policy-name newsaphanaPolicy \
--name saphanadatabase;hxe;hxe \
输出应如下所示:
Name Resource Group
------------------------------------- --------------
cb110094-9b15-4c55-ad45-6899200eb8dd SAPHANA
创建增量备份策略
若要创建增量备份策略,请使用以下参数执行 az backup policy create 命令:
- --backup-management-type - Azure 工作负载
- --workload-type - SAPHana
- --name - 策略的名称
- --policy - JSON 文件,其中包含有关计划和保留的相应详细信息
- --resource-group - 保管库的资源组
- --vault-name - 保管库的名称
例如:
az backup policy create --resource-group saphanaResourceGroup --vault-name saphanaVault --name sappolicy --backup-management-type AzureWorkload --policy sappolicy.json --workload-type SAPHana
示例 JSON (sappolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/saphanaResourceGroup/providers/Microsoft.RecoveryServices/vaults/saphanaVault/backupPolicies/sappolicy",
"location": null,
"name": "sappolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"makePolicyConsistent": null,
"protectedItemsCount": 0,
"settings": {
"isCompression": false,
"issqlcompression": false,
"timeZone": "UTC"
},
"subProtectionPolicy": [
{
"policyType": "Full",
"retentionPolicy": {
"dailySchedule": null,
"monthlySchedule": {
"retentionDuration": {
"count": 60,
"durationType": "Months"
},
"retentionScheduleDaily": null,
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2021-01-19T00:30:00+00:00"
]
},
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
},
"retentionTimes": [
"2021-01-19T00:30:00+00:00"
]
},
"yearlySchedule": {
"monthsOfYear": [
"January"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
},
"retentionScheduleDaily": null,
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2021-01-19T00:30:00+00:00"
]
}
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2021-01-19T00:30:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
},
{
"policyType": "Incremental",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
},
{
"policyType": "Log",
"retentionPolicy": {
"retentionDuration": {
"count": 15,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"scheduleFrequencyInMins": 120,
"schedulePolicyType": "LogSchedulePolicy"
}
}
],
"workLoadType": "SAPHanaDatabase"
},
"resourceGroup": "saphanaResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
成功创建策略后,命令的输出将显示执行命令时作为参数传递的策略 JSON。
可以修改策略的以下部分,以指定所需的备份频率和增量备份的保留时间。
例如:
{
"policyType": "Incremental",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
例如:
如果要仅在星期六进行增量备份并将其保留 60 天,请在策略中进行以下更改:
- 将 retentionDuration 计数更新为 60 天
- 仅将周六指定为 ScheduleRunDays
{
"policyType": "Incremental",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
保护添加到 SAP HANA 实例的新数据库
使用恢复服务保管库注册 SAP HANA 实例会自动发现该实例上的所有数据库。
但是,如果以后将新数据库添加到 SAP HANA 实例,请使用 az backup protectable-item initialize cmdlet。 此 cmdlet 会发现添加的新数据库。
az backup protectable-item initialize --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
--workload-type SAPHANA
然后,使用 az backup protectable-item list cmdlet 列出已在 SAP HANA 实例上发现的所有数据库。 但是,此列表会排除已配置备份的数据库。 发现要备份的数据库后,请参阅在 SAP HANA 数据库上启用备份。
az backup protectable-item list --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--workload-type SAPHANA \
--output table
要备份的新数据库将显示在此列表中,如下所示:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
saphanasystem;hxe SAPHanaSystem HXE hxehost NotProtected
saphanadatabase;hxe;systemdb SAPHanaDatabase HXE hxehost NotProtected
saphanadatabase;hxe;newhxe SAPHanaDatabase HXE hxehost NotProtected
停止对 SAP HANA 数据库的保护
可以通过以下几种方式停止保护 SAP HANA 数据库:
- 停止所有将来的备份作业并删除所有恢复点。
- 停止所有将来的备份作业,且恢复点保留不变。
如果选择保留恢复点,请记住以下详细内容:
- 所有恢复点都将永久保持不变,所有删除操作都将在停止保护时停止,并保留数据。
- 你将为受保护的实例和使用的存储付费。
- 如果在不停止备份的情况下删除数据源,则新备份会失败。
让我们进一步了解停止保护的方法。
停止保护并保留数据
若要停止保护并保留数据,请使用 az backup protection disable cmdlet。
az backup protection disable --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
--item-name saphanadatabase;hxe;hxe \
--workload-type SAPHANA \
--output table
输出应如下所示:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 saphanaResourceGroup
若要检查此操作的状态,请使用 az backup job show cmdlet。
停止保护且不保留数据
若要停止保护且不保留数据,请使用 az backup protection disable cmdlet。
az backup protection disable --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
--item-name saphanadatabase;hxe;hxe \
--workload-type SAPHANA \
--delete-backup-data true \
--output table
输出应如下所示:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 saphanaResourceGroup
若要检查此操作的状态,请使用 az backup job show cmdlet。
恢复保护
如果停止对 SAP HANA 数据库的保护且保留数据,可在稍后恢复保护。 如果不保留备份的数据,则无法恢复保护。
若要恢复保护,请使用 az backup protection resume cmdlet。
az backup protection resume --resource-group saphanaResourceGroup \
--vault-name saphanaVault \
--container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
--policy-name saphanaPolicy \
--output table
输出应如下所示:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e saphanaResourceGroup
若要检查此操作的状态,请使用 az backup job show cmdlet。
后续步骤
若要了解如何使用 Azure 门户备份 Azure VM 上运行的 SAP HANA 数据库,请参阅在 Azure VM 上备份 SAP HANA 数据库
若要了解如何使用 Azure 门户管理 Azure VM 上运行的已备份 SAP HANA 数据库,请参阅在 Azure VM 上管理备份的 SAP HANA 数据库