教程:使用 Azure CLI 备份 Azure VM 中的 SAP HANA 数据库

本教程介绍如何使用 Azure CLI 备份 SAP HANA 数据库实例和 SAP HANA 系统复制 (HSR) 实例。

Azure CLI 用于从命令行或通过脚本创建和管理 Azure 资源。 本文档详细介绍了如何备份 SAP HANA 数据库并触发按需备份 - 所有这些操作都使用 Azure CLI。 还可以使用 Azure 门户执行这些步骤。

本文档假定你已在 Azure VM 上安装了 SAP HANA 数据库。 (也可以使用 Azure CLI 创建 VM)。

若要详细了解支持的方案,请参阅 SAP HANA 的支持矩阵

先决条件

  • 如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  • 本教程需要 Azure CLI 2.0.30 或更高版本。

创建恢复服务保管库

恢复服务保管库是一个逻辑容器,用于存储每个受保护资源(例如 Azure VM)或在 Azure VM 上运行的工作负载(例如 SQL 或 HANA 数据库)的备份数据。 运行受保护资源的备份作业时,该作业会在恢复服务保管库中创建一个恢复点。 然后,可以使用其中一个恢复点将数据还原到给定的时间点。

使用 az backup vault create 创建恢复服务保管库。 指定与想要保护的 VM 相同的资源组和位置。 了解如何通过此 VM 快速入门使用 Azure CLI 创建 VM。

选择数据库类型

在本教程中,我们将使用:

  • 名为 saphanaResourceGroup 的资源组
  • 名为 saphanaVM 的 VM
  • chinanorth2 位置的资源。

我们将创建一个名为 saphanaVault 的保管库。

az backup vault create --resource-group saphanaResourceGroup \
    --name saphanaVault \
    --location chinanorth2

默认情况下,恢复服务保管库是针对异地冗余存储设置的。 异地冗余存储可确保将备份数据复制到距主要区域数百英里以外的辅助 Azure 区域。 如果存储冗余设置需要修改,请使用 az backup vault backup-properties set cmdlet。

az backup vault backup-properties set \
    --name saphanaVault  \
    --resource-group saphanaResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

若要查看是否已成功创建保管库,请使用 az backup vault list cmdlet。 你将看到以下响应:

Location   Name             ResourceGroup
---------  ---------------  -------------  
chinanorth2    saphanaVault     saphanaResourceGroup

注册并保护 SAP HANA 实例

对于要由 Azure 服务发现的 SAP HANA 实例(该实例上安装有包含 SAP HANA 的 VM),必须在 SAP HANA 计算机上运行预注册脚本。 运行脚本之前,请确保满足所有先决条件。 若要了解脚本的更多功能,请参阅预注册脚本的功能部分。

脚本运行后,可通过之前创建的恢复服务保管库注册 SAP HANA 实例。

选择数据库类型

若要注册和保护数据库实例,请执行以下步骤:

  1. 若要注册实例,请使用 az backup container register 命令。 VMResourceId 是你创建的用于安装 SAP HANA 的 VM 资源 ID。

    az backup container register --resource-group saphanaResourceGroup \
        --vault-name saphanaVault \
        --workload-type SAPHANA \
        --backup-management-type AzureWorkload \
        --resource-id VMResourceId
    

    注意

    如果 VM 与保管库不在同一个资源组中,则 saphanaResourceGroup 指代创建保管库所在的资源组。

    注册 SAP HANA 实例会自动发现其所有当前数据库。 但是,若要发现将来可能添加的任何新数据库,请参考发现已添加到已注册 SAP HANA 的新数据库实例部分。

  2. 若要检查 SAP HANA 实例是否已成功注册到保管库,请使用 az backup container list cmdlet。 你将看到以下响应:

    Name                                                    Friendly Name    Resource Group        Type           Registration Status
    ------------------------------------------------------  --------------   --------------------  ---------      ----------------------
    VMAppContainer;Compute;saphanaResourceGroup;saphanaVM   saphanaVM        saphanaResourceGroup  AzureWorkload  Registered
    

    注意

    以上输出中的“名称”列是指容器名。 以下部分将使用此容器名,以启用备份并触发它们。 在本例中,为 VMAppContainer;Compute;saphanaResourceGroup;saphanaVM。

在 SAP HANA 数据库上启用备份

az backup protectable-item list cmdlet 列出了在上一步中注册的 SAP HANA 实例上发现的所有数据库。

选择数据库类型

要启用数据库实例备份,请执行以下步骤:

  1. 若要列出要保护的数据库,请运行以下命令:

    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;hxe        SAPHanaDatabase          HXE           hxehost       NotProtected
    

    从上面的输出中可以看出,SAP HANA 系统的 SID 是 HXE。 在本教程中,我们将为 hxehost 服务器上的 saphanadatabase;hxe;hxe 数据库配置备份。

  2. 若要在数据库上一次保护和配置一个备份,请使用 az backup protection enable-for-azurewl cmdlet。 提供要使用的策略名。 若要使用 CLI 创建策略,请使用 az backup policy create cmdlet。 本教程将使用 sapahanaPolicy 策略。

    az backup protection enable-for-azurewl --resource-group saphanaResourceGroup \
        --vault-name saphanaVault \
        --policy-name saphanaPolicy \
        --protectable-item-name "saphanadatabase;hxe;hxe"  \
        --protectable-item-type SAPHANADatabase \
        --server-name hxehost \
        --workload-type SAPHANA \
        --output table
    
  3. 若要检查以上备份配置是否已完成,请使用 az backup job list cmdlet。 输出将如下所示:

    Name                                  Operation         Status     Item Name   Start Time UTC
    ------------------------------------  ---------------   ---------  ----------  -------------------  
    e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  hxe         2019-12-03T03:09:210831+00:00  
    

az backup job list cmdlet 列出了在受保护数据库上已运行或当前正在运行的所有(计划或按需)备份作业,以及注册、配置备份和删除备份数据等其他操作。

注意

备份在 Azure VM 中运行的 SAP HANA 数据库时,Azure 备份不会针对夏令时更改自动进行调整。

请根据需要手动修改策略。

获取容器名称

若要获取容器名称,请运行以下命令。 了解此 CLI 命令

    az backup item list --resource-group <resource group name> --vault-name <vault name>

触发按需备份

尽管上述部分详细介绍了如何配置计划的备份,但本部分介绍如何触发按需备份。 为此,我们使用 az backup protection backup-now 命令。

注意

此备份的保持期取决于运行的按需备份的类型。

  • 按需完整备份至少保留 45 天,最多保留 99 年。
  • 按需差异备份按策略中的日志保留设置进行保留。
  • 目前不支持按需增量备份。

选择数据库类型

若要运行按需备份,请运行以下命令:

az backup protection backup-now --resource-group saphanaResourceGroup \
    --item-name saphanadatabase;hxe;hxe \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

输出将如下所示:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  saphanaResourceGroup

响应将为你提供作业名。 此作业名可用于使用 az backup job show cmdlet 来跟踪作业状态。

注意

日志备份由 SAP HANA 内部自动触发和管理。

后续步骤