你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:备份 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 中。 默认值为安装 SAP HANA 的
- 还可以选择为 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 使用量限制为最大值,请执行以下步骤。
转到“opt/msawb/bin”文件夹
创建名为“ExtensionSettingsOverrides.JSON”的新 JSON 文件
将键值对添加到 JSON 文件,如下所示:
{ "MaxUsableVMThroughputInMBPS": 120 }
更改文件的权限和所有权,如下所示:
chmod 750 ExtensionSettingsOverrides.json chown root:msawb ExtensionSettingsOverrides.json
不需要重新启动任何服务。 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 和租户数据库。 |
成功运行预注册脚本并进行验证后,可以继续检查连接要求,并从恢复服务保管库配置备份
创建恢复服务保管库
恢复服务保管库是一个管理实体,它会存储一段时间内创建的恢复点,并提供用于执行备份相关操作的接口。 这些操作包括按需备份、执行还原和创建备份策略。
若要创建恢复服务保管库,请执行以下操作:
登录到 Azure 门户。
搜索“业务连续性中心”,然后转到“业务连续性中心”仪表板。
在“保管库”窗格中,选择“+ 保管库”。
选择“恢复服务保管库”>“继续”。
在“恢复服务保管库”窗格中输入以下值:
订阅:选择要使用的订阅。 如果你仅是一个订阅的成员,则会看到该名称。 如果不确定要使用哪个订阅,请使用默认订阅。 仅当工作或学校帐户与多个 Azure 订阅关联时,才会显示多个选项。
资源组:使用现有资源组,或创建一个新的资源组。 若要查看订阅中可用的资源组的列表,请选择“使用现有资源”,然后从下拉列表中选择一个资源。 若要创建新的资源组,请选择“新建”并输入新资源组的名称。 有关资源组的详细信息,请参阅 Azure 资源管理器概述。
保管库名称:输入一个易记名称,用于标识此保管库。 名称对于 Azure 订阅必须是唯一的。 指定的名称应至少包含 2 个字符,最多不超过 50 个字符。 名称必须以字母开头且只能包含字母、数字和连字符。
区域:为保管库选择地理区域。 若要创建保管库来保护任何数据源,该保管库必须位于数据源所在的区域。
重要
如果不确定数据源的位置,请关闭该窗口。 在门户中访问你的资源列表。 如果数据源位于多个区域中,请为每个区域创建恢复服务保管库。 先在第一个位置创建保管库,然后再在其他位置中创建保管库。 无需指定存储帐户即可存储备份数据。 恢复服务保管库和 Azure 备份会自动处理这种情况。
提供值后,选择“查看 + 创建”。
要完成恢复服务保管库的创建,请选择“创建”。
创建恢复服务保管库可能需要一段时间。 可在右上方的“通知”区域监视状态通知。 创建保管库后,它会显示在“恢复服务保管库”的列表中。 如果没有显示保管库,请选择“刷新”。
注意
Azure 备份现在支持不可变保管库,可帮助确保恢复点一旦创建就无法根据备份策略在到期前将其删除。 可以将不可变性设为不可逆转,以最大限度地保护备份数据免受各种威胁,包括勒索软件攻击和恶意行动者。 了解详细信息。
现在,恢复服务存储库已创建。
启用跨区域还原
在恢复服务保管库中,可以启用跨区域还原。 了解如何启用跨区域还原。
详细了解跨区域还原。
发现数据库
在 Azure 门户中,转到“备份中心”,然后单击“+ 备份”。
选择“Azure VM 中的 SAP HANA”作为数据源类型,选择用于备份的恢复服务保管库,然后单击“继续”。
选择“开始发现”。 这会开始在保管库区域中发现未受保护的 Linux VM。
- 在发现后,未受保护的 VM 将显示在门户中,按名称和资源组列出。
- 如果某个 VM 未按预期列出,请检查它是否已在保管库中备份。
- 可能有多个 VM 同名,但属于不同的资源组。
在“选择虚拟机”中,选择脚本下载链接。此脚本可为 Azure 备份服务提供访问 SAP HANA VM 的权限,以进行数据库发现。
在托管要备份的 SAP HANA 数据库的每个 VM 上运行此脚本。
在 VM 上运行此脚本后,在“选择虚拟机”中选择 VM。 然后选择“发现 DB”。
Azure 备份可发现该 VM 上的所有 SAP HANA 数据库。 在发现期间,Azure Backup 将 VM 注册到保管库,并在该 VM 上安装扩展。 不会在数据库中安装任何代理。
配置备份
现在启用备份。
在步骤 2 中,选择“配置备份”。
在“选择要备份的项”中,选择要保护的所有数据库,然后选择“确定”。
在“备份策略”>“选择备份策略”中,按照下面的说明,为数据库创建一个新的备份策略。
创建策略后,在“备份菜单”中选择“启用备份” 。
创建备份策略
备份策略定义备份创建时间以及这些备份的保留时间。
- 策略是在保管库级别创建的。
- 多个保管库可以使用相同的备份策略,但必须向每个保管库应用该备份策略。
注意
备份在 Azure VM 中运行的 SAP HANA 数据库时,Azure 备份不会针对夏令时更改自动进行调整。
请根据需要手动修改策略。
按以下方式指定策略设置:
在“策略名称”处输入新策略的名称。 对于本例,请输入“SAPHANA”。
在“完整备份策略”中选择一个备份频率。 可以选择“每日”或“每周” 。 对于本教程,我们选择了“每日”备份。
在“保持期”中,对完整备份配置保留设置。
- 默认情况下,选择所有选项。 清除你不想使用的所有保持期限制,并设置要使用的选项。
- 任何备份类型(完整/差异/日志)的最短保持期均为七天。
- 恢复点已根据其保留范围标记为保留。 例如,如果选择每日完整备份,则每天只触发一次完整备份。
- 根据每周保持期和设置,将会标记并保留特定日期的备份。
- 每月和每年保留范围的行为类似。
在“完整备份策略”菜单中,选择“确定”接受设置。
然后选择“差异备份”,以添加差异策略。
在“差异备份策略”中,选择“启用”打开频率和保留控件。 我们在每个星期日的凌晨 2:00 启用了差异备份,保持期为 30 天 。
注意
可以选择差异备份或增量备份作为每日备份,但不能同时选择两者。
在“增量备份策略”中,选择“启用”以打开频率和保留控件 。
- 每天最多可以触发一次增量备份。
- 增量备份最多可以保留 180 天。 如果需要保留更长时间,必须使用完整备份。
选择“确定”保存策略,并返回“备份策略”主菜单。
请选择“日志备份”,以添加事务日志备份策略。
- “日志备份”默认设为“启用” 。 由于 SAP HANA 管理所有日志备份,此类备份无法被禁用。
- 我们已将备份计划设置为 2 小时,保持期为 15 天 。
注意
日志备份仅在成功完成一次完整备份之后进行。
选择“确定”保存策略,并返回“备份策略”主菜单。
完成定义备份策略后,选择“确定”。
现已成功为 SAP HANA 数据库配置备份。