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

本教程介绍如何将 Azure VM 上运行的 SAP HANA 数据库备份到 Azure 备份恢复服务保管库。 在本文中,你将学习如何:

  • 创建并配置保管库
  • 发现数据库
  • 配置备份

这里有我们目前支持的所有方案。

先决条件

在配置备份之前,请确保执行以下操作:

  • 在运行 SAP HANA 的 VM 所在的同一区域和订阅中标识或创建一个恢复服务保管库
  • 允许从 VM 连接到 Internet,以便 VM 可以访问 Azure,如设置网络连接部分中所述。
  • 对于 Azure 资源管理器,请确保 SAP HANA 服务器 VM 名称和资源组名称的组合长度不超过 84 个字符(对于经典 VM,则不超过 77 个字符)。 此限制是因为某些字符由该服务预留。
  • hdbuserstore 中应存在一个满足以下条件的密钥:
    • 它应该出现在默认的 hdbuserstore 中。 默认值为安装 SAP HANA 的 <sid>adm 帐户。
    • 对于 MDC,该密钥应指向 NAMESERVER 的 SQL 端口。 对于 SDC,它应指向 INDEXSERVER 的 SQL 端口
    • 它应该包含用于添加和删除用户的凭据
    • 请注意,成功运行预注册脚本后可以删除此密钥
  • 还可以选择为 hdbuserstore 中的现有 HANA SYSTEM 用户创建密钥,而不是创建上述步骤中列出的自定义密钥。
  • 在安装了 HANA 的虚拟机中,以 root 用户身份运行 SAP HANA 备份配置脚本(注册前脚本)。 此脚本可让 HANA 系统做好备份准备,并要求将你在上述步骤中创建的密钥作为输入传递。 要了解如何将此输入作为参数传递到脚本,请参阅预注册脚本的功能部分。 它还详细说明了预注册脚本的功能。
  • 如果 HANA 安装程序使用专用终结点,请使用 -sn 或 -skip-network-checks 参数运行预注册脚本

注意

预注册脚本将为 RHEL(7.4、7.6 和 7.7)上运行的 SAP HANA 工作负载安装 compat-unixODBC234,为 RHEL 8.1 上的安装 unixODBC 。 此包位于 SAP 解决方案 (RPM) 存储库中的 RHEL for SAP HANA(适用于 RHEL 7 服务器)更新服务中。 对于 Azure 市场 RHEL 映像,存储库应为 rhui-rhel-sap-hana-for-rhel-7-server-rhui-e4s-rpms。

了解备份和还原吞吐量性能

通过 Backint 提供的 SAP HANA Azure VM 中的备份(日志和非日志)流式传输到 Azure 恢复服务保管库(内部使用 Azure 存储 Blob),因此了解此流式处理方法非常重要。

HANA 的 Backint 组件提供了连接到数据库文件所在底层磁盘的“管道”(要读取的管道,以及要写入到的管道),这些数据库文件将由 Azure 备份服务读取并传输到 Azure 恢复服务保管库(一个远程 Azure 存储帐户)。 除了 Backint 本机验证检查以外,Azure 备份服务还会执行校验和来验证流。 这些验证将确保 Azure 恢复服务保管库中存在的数据确实可靠且可恢复。

由于流主要处理磁盘,因此你需要了解磁盘读取性能和传输备份数据时的网络性能,以衡量备份和还原性能。 请参阅此文,深入了解 Azure VM 中的磁盘/网络吞吐量和性能。 这些也适用于备份和还原性能。

对于 HANA 的非日志备份(例如完整备份、差异备份和增量备份),Azure 备份服务会尝试实现最大大约为 420 MBps 的吞吐量,对于 HANA 的日志备份,则会尝试实现最大大约为 100 MBps 的吞吐量。 如上所述,这些并非保证的速度,并且它们取决于以下因素:

  • VM 的最大非缓存磁盘吞吐量 - 从数据区域或日志区域读取。
  • 底层磁盘类型及其吞吐量 - 从数据区域或日志区域读取。
  • VM 的最大网络吞吐量 - 写入恢复服务保管库。
  • 如果 VNET 具有 NVA/防火墙,则取决于网络吞吐量
  • 如果 Azure NetApp 文件上的数据/日志 - 从 ANF 的读取和到保管库的写入均使用 VM 的网络。

重要

在较小的 VM 中,如果非缓存的磁盘吞吐量非常接近或小于 400 MBps,那么你可能会担心整个磁盘 IOPS 都将由备份服务使用,而这可能会影响与磁盘上的读取/写入相关的 SAP HANA 操作。 在这种情况下,如果希望将备份服务使用量限制为最大限值,则可以参阅下一部分。

限制备份吞吐量性能

如果要将备份服务磁盘 IOPS 使用量限制为最大值,请执行以下步骤。

  1. 转到“opt/msawb/bin”文件夹

  2. 创建名为“ExtensionSettingsOverrides.JSON”的新 JSON 文件

  3. 将键值对添加到 JSON 文件,如下所示:

    {
    "MaxUsableVMThroughputInMBPS": 120
    }
    
  4. 更改文件的权限和所有权,如下所示:

    chmod 750 ExtensionSettingsOverrides.json
    chown root:msawb ExtensionSettingsOverrides.json
    
  5. 不需要重新启动任何服务。 Azure 备份服务将尝试限制此文件中提到的吞吐量性能。

注意

如果更改未应用,请重启数据库。

注册前脚本的功能

注册前脚本执行以下功能:

  • 脚本将基于 Linux 分发安装或更新 Azure 备份代理所需的任何包。
  • 执行与 Azure 备份服务器和相关服务(例如 Microsoft Entra ID 和 Azure 存储)之间的出站网络连接检查。
  • 它使用先决条件中提到的自定义用户密钥或 SYSTEM 用户密钥登录到 HANA 系统。 它用于在 HANA 系统中创建备份用户 (AZUREWLBACKUPHANAUSER),成功运行预注册脚本后,可以删除该用户密钥。 请注意,不得删除 SYSTEM 用户密钥。
  • 它会检查 /opt/msawb 文件夹是否放置在根分区中,并且根分区的大小是否为 2 GB;如果是,则发出警告。 该脚本建议将根分区大小增加到 4 GB,或者将 /opt/msawb 文件夹移动到其他最大可容纳 4 GB 内容的位置。 请注意,如果将 /opt/msawb 文件夹放置在大小为 2 GB 的根分区中,可能会导致根分区空间用完并导致备份失败。
  • 为 AZUREWLBACKUPHANAUSER 分配了以下必需的角色和权限:
    • 对于 MDC:数据库管理员和备份管理员(从 HANA 2.0 SPS05 开始):在还原期间创建新数据库。
    • 对于 SDC:备份管理员:在还原期间创建新数据库。
    • 目录读取:读取备份目录。
    • SAP_INTERNAL_HANA_SUPPORT:访问一些专用表。 仅对于 HANA 2.0 SPS04 Rev 46 以下的 SDC 和 MDC 版本是必需的。 对于 HANA 2.0 SPS04 Rev 46 和更高版本不是必需的,因为我们现在会通过 HANA 团队提供的修补程序从公共表中获取所需的信息。
  • 此脚本在 hdbuserstore 中为 HANA 备份插件的 AZUREWLBACKUPHANAUSER 添加一个密钥,以便处理所有操作(数据库查询、还原操作、配置和运行备份)。
  • 你也可以选择创建自己的自定义备份用户。 确保为该用户分配了以下必需的角色和权限:
    • 对于 MDC:数据库管理员和备份管理员(从 HANA 2.0 SPS05 开始):在还原期间创建新数据库。
    • 对于 SDC:备份管理员:在还原期间创建新数据库。
    • 目录读取:读取备份目录。
    • SAP_INTERNAL_HANA_SUPPORT:访问一些专用表。 仅对于 HANA 2.0 SPS04 Rev 46 以下的 SDC 和 MDC 版本是必需的。 对于 HANA 2.0 SPS04 Rev 46 和更高版本不是必需的,因为我们现在会通过 HANA 团队提供的修补程序从公共表中获取所需的信息。
  • 然后在 hdbuserstore 中为 HANA 备份插件的自定义备份用户添加一个密钥,以便处理所有操作(数据库查询、还原操作、配置和运行备份)。 将此自定义备份用户密钥作为参数传递给脚本:-bk CUSTOM_BACKUP_KEY_NAME-backup-key CUSTOM_BACKUP_KEY_NAME。 请注意,此自定义备份密钥的密码过期可能会导致备份和还原失败。
  • 如果你的 HANA <sid>adm 用户是一个 Active Directory (AD) 用户,请在你的 AD 中创建一个 msawb 组并将 <sid>adm 用户添加到此组。 你现在必须在预注册脚本中使用参数指定 <sid>adm 为 AD 用户:-ad <SID>_ADM_USER or --ad-user <SID>_ADM_USER

注意

若要了解脚本接受哪些其他参数,请使用命令 bash msawb-plugin-config-com-sap-hana.sh --help

若要确认创建密钥,请在具有 SIDADM 凭据的 HANA 计算机上运行以下 HDBSQL 命令:

hdbuserstore list

命令输出应显示 {SID}{DBNAME} 密钥,用户显示为 AZUREWLBACKUPHANAUSER。

注意

请确保 /usr/sap/{SID}/home/.hdb/ 下有一组唯一的 SSFS 文件。 此路径中应只有一个文件夹。

下面概述了完成预注册脚本运行所需的步骤。 请注意,在此流程中,我们将提供 SYSTEM 用户密钥作为预注册脚本的输入参数。

运行内容 注释
<sid>adm (OS) HANA OS 阅读教程并下载预注册脚本。 教程:备份 Azure VM 中的 HANA 数据库

下载预注册脚本
<sid>adm (OS) HANA OS 启动 HANA (HDB start) 在设置之前,请确保 HANA 已启动并正在运行。
<sid>adm (OS) HANA OS 运行命令
hdbuserstore Set
hdbuserstore Set SYSTEM <hostname>:3<Instance#>13 SYSTEM <password>

注意
确保使用主机名而不是 IP 地址/FQDN。
<sid>adm (OS) HANA OS 运行以下命令:
hdbuserstore List
检查结果是否包含默认存储,如下所示:

KEY SYSTEM
ENV : <hostname>:3<Instance#>13
USER : SYSTEM
Root (OS) HANA OS 运行 Azure 备份 HANA 预注册脚本 ./msawb-plugin-config-com-sap-hana.sh -a --sid <SID> -n <Instance#> --system-key SYSTEM
<sid>adm (OS) HANA OS 运行命令
hdbuserstore List
检查结果是否包含新行,如下所示:

KEY AZUREWLBACKUPHANAUSER
ENV : localhost: 3<Instance#>13
USER: AZUREWLBACKUPHANAUSER
Azure 参与者 Azure 门户 配置 NSG、NVA、Azure 防火墙等,以允许流向 Azure 备份服务、Microsoft Entra ID 和 Azure 存储的出站流量。 设置网络连接
Azure 参与者 Azure 门户 创建或打开恢复服务保管库,然后选择 HANA 备份。 找到所有要备份的目标 HANA VM。
Azure 参与者 Azure 门户 发现 HANA 数据库并配置备份策略。 例如:

每周备份:每周日凌晨 2:00,每周备份保留 12 周,每月备份保留 12 个月,每年备份保留 3 年
差异或增量:每天,周日除外
日志:每 15 分钟运行一次,保留 35 天
Azure 参与者 Azure 门户 恢复服务保管库 - 备份项 - SAP HANA 检查备份作业(Azure 工作负载)。
HANA 管理员 HANA Studio 检查备份控制台、备份目录、backup.log、backint.log 和 globa.ini SYSTEMDB 和租户数据库。

成功运行预注册脚本并进行验证后,可以继续检查连接要求,并从恢复服务保管库配置备份

创建恢复服务保管库

恢复服务保管库是一个管理实体,它会存储一段时间内创建的恢复点,并提供用于执行备份相关操作的接口。 这些操作包括按需备份、执行还原和创建备份策略。

若要创建恢复服务保管库,请执行以下操作:

  1. 登录 Azure 门户

  2. 搜索“备份中心”,然后转到“备份中心”仪表板。

    显示搜索并选择“备份中心”的位置的屏幕截图。

  3. 在“概述”窗格中选择“保管库”。

    用于创建恢复服务保管库的按钮的屏幕截图。

  4. 选择“恢复服务保管库”>“继续”。

    显示选择“恢复服务”作为保管库类型的位置的屏幕截图。

  5. 在“恢复服务保管库”窗格中输入以下值:

    • 订阅:选择要使用的订阅。 如果你仅是一个订阅的成员,则会看到该名称。 如果不确定要使用哪个订阅,请使用默认订阅。 仅当工作或学校帐户与多个 Azure 订阅关联时,才会显示多个选项。

    • 资源组:使用现有资源组,或创建一个新的资源组。 若要查看订阅中可用的资源组的列表,请选择“使用现有资源”,然后从下拉列表中选择一个资源。 若要创建新的资源组,请选择“新建”并输入新资源组的名称。 有关资源组的详细信息,请参阅 Azure 资源管理器概述

    • 保管库名称:输入一个易记名称,用于标识此保管库。 名称对于 Azure 订阅必须是唯一的。 指定的名称应至少包含 2 个字符,最多不超过 50 个字符。 名称必须以字母开头且只能包含字母、数字和连字符。

    • 区域:为保管库选择地理区域。 若要创建保管库来保护任何数据源,该保管库必须位于数据源所在的区域。

      重要

      如果不确定数据源的位置,请关闭该窗口。 在门户中访问你的资源列表。 如果数据源位于多个区域中,请为每个区域创建恢复服务保管库。 先在第一个位置创建保管库,然后再在其他位置中创建保管库。 无需指定存储帐户即可存储备份数据。 恢复服务保管库和 Azure 备份会自动处理这种情况。

    显示用于配置恢复服务保管库的字段的屏幕截图。

  6. 提供值后,选择“查看 + 创建”。

  7. 要完成恢复服务保管库的创建,请选择“创建”。

    创建恢复服务保管库可能需要一段时间。 可在右上方的“通知”区域监视状态通知。 创建保管库后,它会显示在“恢复服务保管库”的列表中。 如果没有显示保管库,请选择“刷新”。

    显示用于刷新备份保管库列表的按钮的屏幕截图。

注意

Azure 备份现在支持不可变保管库,可帮助确保恢复点一旦创建就无法根据备份策略在到期前将其删除。 可以将不可变性设为不可逆转,以最大限度地保护备份数据免受各种威胁,包括勒索软件攻击和恶意行动者。 了解详细信息

现在,恢复服务存储库已创建。

启用跨区域还原

在恢复服务保管库中,可以启用跨区域还原。 了解如何启用跨区域还原

详细了解跨区域还原。

发现数据库

  1. 在 Azure 门户中,转到“备份中心”,然后单击“+ 备份”。

    显示开始检查 SAP HANA 数据库的屏幕截图。

  2. 选择“Azure VM 中的 SAP HANA”作为数据源类型,选择用于备份的恢复服务保管库,然后单击“继续”。

    显示选择 Azure VM 中的 SAP HANA 数据库的屏幕截图。

  3. 选择“开始发现”。 这会开始在保管库区域中发现未受保护的 Linux VM。

    • 在发现后,未受保护的 VM 将显示在门户中,按名称和资源组列出。
    • 如果某个 VM 未按预期列出,请检查它是否已在保管库中备份。
    • 可能有多个 VM 同名,但属于不同的资源组。

    显示选择“开始发现”的屏幕截图。

  4. 在“选择虚拟机”中,选择脚本下载链接。此脚本可为 Azure 备份服务提供访问 SAP HANA VM 的权限,以进行数据库发现。

  5. 在托管要备份的 SAP HANA 数据库的每个 VM 上运行此脚本。

  6. 在 VM 上运行此脚本后,在“选择虚拟机”中选择 VM。 然后选择“发现 DB”。

  7. Azure 备份可发现该 VM 上的所有 SAP HANA 数据库。 在发现期间,Azure Backup 将 VM 注册到保管库,并在该 VM 上安装扩展。 不会在数据库中安装任何代理。

    显示已发现的 SAP HANA 数据库的屏幕截图。

配置备份

现在启用备份。

  1. 在步骤 2 中,选择“配置备份”。

    显示配置“备份”的屏幕截图。

  2. 在“选择要备份的项”中,选择要保护的所有数据库,然后选择“确定”。

    显示选择要备份的数据库的屏幕截图。

  3. 在“备份策略”>“选择备份策略”中,按照下面的说明,为数据库创建一个新的备份策略。

    显示选择备份策略的屏幕截图。

  4. 创建策略后,在“备份菜单”中选择“启用备份” 。

    显示如何启用备份的屏幕截图。

创建备份策略

备份策略定义备份创建时间以及这些备份的保留时间。

  • 策略是在保管库级别创建的。
  • 多个保管库可以使用相同的备份策略,但必须向每个保管库应用该备份策略。

注意

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

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

按以下方式指定策略设置:

  1. 在“策略名称”处输入新策略的名称。 对于本例,请输入“SAPHANA”。

    输入新策略的名称

  2. 在“完整备份策略”中选择一个备份频率。 可以选择“每日”或“每周” 。 对于本教程,我们选择了“每日”备份。

    选择备份频率

  3. 在“保持期”中,对完整备份配置保留设置。

    • 默认情况下,选择所有选项。 清除你不想使用的所有保持期限制,并设置要使用的选项。
    • 任何备份类型(完整/差异/日志)的最短保持期均为七天。
    • 恢复点已根据其保留范围标记为保留。 例如,如果选择每日完整备份,则每天只触发一次完整备份。
    • 根据每周保持期和设置,将会标记并保留特定日期的备份。
    • 每月和每年保留范围的行为类似。
  4. 在“完整备份策略”菜单中,选择“确定”接受设置。

  5. 然后选择“差异备份”,以添加差异策略。

  6. 在“差异备份策略”中,选择“启用”打开频率和保留控件。 我们在每个星期日的凌晨 2:00 启用了差异备份,保持期为 30 天 。

    差异备份策略

    注意

    可以选择差异备份或增量备份作为每日备份,但不能同时选择两者。

  7. 在“增量备份策略”中,选择“启用”以打开频率和保留控件 。

    • 每天最多可以触发一次增量备份。
    • 增量备份最多可以保留 180 天。 如果需要保留更长时间,必须使用完整备份。

    增量备份策略

  8. 选择“确定”保存策略,并返回“备份策略”主菜单。

  9. 请选择“日志备份”,以添加事务日志备份策略。

    • “日志备份”默认设为“启用” 。 由于 SAP HANA 管理所有日志备份,此类备份无法被禁用。
    • 我们已将备份计划设置为 2 小时,保持期为 15 天 。

    日志备份策略

    注意

    日志备份仅在成功完成一次完整备份之后进行。

  10. 选择“确定”保存策略,并返回“备份策略”主菜单。

  11. 完成定义备份策略后,选择“确定”。

现已成功为 SAP HANA 数据库配置备份。

后续步骤