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

教程:使用 Azure CLI 管理 Azure VM 中的 SAP HANA 数据库

Azure CLI 用于从命令行或通过脚本创建和管理 Azure 资源。 本文档详细介绍了如何在 Azure VM 上管理备份的 SAP HANA 数据库 - 全部使用 Azure CLI。 还可以使用 Azure 门户执行这些步骤。

使用 Azure Cloud Shell 运行 CLI 命令。

如果使用 CLI 在 Azure 中备份了 SAP HANA 数据库,请使用以下资源:

  • 名为 saphanaResourceGroup 的资源组
  • 名为 saphanaVault 的保管库
  • 名为“VMAppContainer;Compute;saphanaResourceGroup;saphanaVM”的受保护容器
  • 已备份的数据库/项,名为 saphanadatabase;hxe;hxe
  • westus2 区域中的资源

使用 Azure CLI 可以轻松管理使用 Azure 备份备份的 Azure VM 上运行的 SAP HANA 数据库。 本教程详细介绍了每个管理操作。

注释

若要详细了解支持的配置和方案,请参阅 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 数据库备份的策略

若要更改 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

为 SAP HANA 数据库创建增量备份策略

若要创建增量备份策略,请使用以下参数执行 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 可发现添加的新数据库。

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 数据库的保护

停止对保留数据的 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。

后续步骤