Compartilhar via

排查Azure上SAP HANA数据库的备份问题

本文提供故障排除信息,用于备份Azure virtual machines上的SAP HANA数据库。 有关我们当前支持的SAP HANA备份方案的详细信息,请参阅 Scenario 支持

先决条件和权限

在配置备份之前,请参阅先决条件预注册脚本的功能部分。

备份和还原SAP HANA数据库的常见用户错误

UserErrorHANAInternalRoleNotPresent

错误消息 Azure Backup doesn't have required role privileges to carry out Backup and Restore operations
可能的原因 如果备份用户 (AZUREWLBACKUPHANAUSER) 未分配 SAP_INTERNAL_HANA_SUPPORT 角色或该角色可能被覆盖,则所有操作都将失败并出现此错误
建议的操作 在SAP HANA实例上下载并运行 pre-registration 脚本,或手动将 SAP_INTERNAL_HANA_SUPPORT 角色分配给备份用户(AZUREWLBACKUPHANAUSER)。

注意

如果使用 HANA 2.0 SPS04 Rev 46 及更高版本,则不会发生此错误,因为在这些 HANA 版本中已弃用 SAP_INTERNAL_HANA_SUPPORT 角色

UserErrorInOpeningHanaOdbcConnection

错误消息 Failed to connect to HANA system
可能的原因
  • 与 HANA 实例的连接失败
  • 系统数据库 (DB) 处于脱机状态
  • 租户数据库脱机
  • 备份用户 (AZUREWLBACKUPHANAUSER) 没有足够的权限/特权。
建议的操作 检查系统是否正在运行。 如果一个或多个数据库正在运行,请确保设置了所需的权限。 要做到这一点,请在 SAP HANA 实例上下载并运行 pre-registration 脚本

UserErrorHanaInstanceNameInvalid(用户错误:Hana实例名称无效)

错误消息 The specified SAP HANA instance is either invalid or can't be found
可能的原因
  • 指定的SAP HANA实例无效或找不到。
  • 无法备份单个Azure虚拟机(VM)上的多个SAP HANA实例。
建议的操作
  • 确保只有一个 HANA 实例在Azure VM 上运行。
  • 若要解决此问题,请在 发现 DB 窗格中运行脚本(您也可以在此处找到脚本),并确保使用正确的 SAP HANA 实例。

UserErrorHANALSNValidationFailure(用户错误:HANA日志序列号验证失败)

错误消息 Backup log chain is broken
可能的原因 有多种原因可以触发 HANA LSN 日志链中断,包括:
  • Azure Storage调用失败提交备份。
  • 租户数据库脱机。
  • 扩展升级终止了正在进行中的备份作业。
  • 在备份期间无法连接到Azure Storage。
  • SAP HANA已在备份过程中回滚事务。
  • 备份已完成,但尚未在 HANA 系统中成功更新目录。
  • 从 Azure Backup 的角度来看,备份失败,但从 HANA 的角度来看,日志备份/目录的目标可能已从 Backint 系统更新为文件系统,或者 Backint 可执行文件可能已被更改。
建议的操作 若要解决此问题,Azure Backup触发自动修复完整备份。 虽然此自动恢复备份正在进行中,但 HANA 触发的所有日志备份都失败,错误消息为 OperationCancelledBecauseConflictingAutohealOperationRunningUserError。 自动修复完整备份完成后,日志和所有其他备份将开始按预期方式工作。
如果在 24 小时内未看到触发自动修复的完整备份或任何成功的备份(完整 / 差异 / 增量备份),请联系 Microsoft 支持。

UserErrorSDCtoMDCUpgradeDetected(已检测到从SDC升级到MDC的用户错误)

错误消息 SDC to MDC upgrade detected.
可能的原因 将 SDC 系统升级到 MDC 时,备份失败并出现此错误。
建议的操作 若要排查和解决问题,请参阅 SDC 到 MDC 的升级

用户错误:配置Backint无效 (UserErrorInvalidBackintConfiguration)

错误消息 Backups will fail with this error when the Backint Configuration is incorrectly updated.
可能的原因 于配置保护流程期间由 Azure Backup 更新的 Backint 配置可能被客户更改或更新。
建议的操作 检查是否设置了以下 (Backint) 参数:
  • [catalog_backup_using_backint:true]
  • [enable_accumulated_catalog_backup:false]
  • [parallel_data_backup_backint_channels:1]
  • [log_backup_timeout_s:900)]
  • [backint_response_timeout:7200]
如果在主机级别存在基于 backint 的参数,请将其删除。 但是,如果参数不存在于主机级别,而在数据库级别进行了手动修改,请确保设置了数据库级别值。 或者,从Azure portal运行 停止保护,保留备份数据,然后选择“恢复备份”。

用户错误:源和目标系统不兼容,无法恢复

错误消息 The source and target systems for restore are incompatible.
可能的原因 当源和目标 HANA 数据库以及系统不兼容时,还原流失败并出现此错误。
建议的操作 确保还原方案不属于以下可能的不兼容还原:
案例 1:在还原过程中无法重命名 SYSTEMDB
情形 2:源端—SDC,目标端—MDC:源数据库无法在目标系统上恢复为 SYSTEMDB 或租户数据库。
案例 3:源 — MDC 和目标 — SDC:源数据库(SYSTEMDB 或租户 DB)无法还原到目标。
若要了解详细信息,请参阅 SAP 支持启动板中的说明 1642148。

用户错误HANA PO不存在

错误消息 Database configured for backup doesn't exist.
可能的原因 如果删除配置了备份的数据库,对此数据库的所有计划备份和按需备份都将失败。
建议的操作 验证数据库是否已删除。 重新创建数据库或停止保护(保留或不保留数据)数据库。

用户错误:数据库用户权限不足

错误消息 Azure Backup does not have enough privileges to carry out Backup and Restore operations.
可能的原因 由预注册脚本创建的备份用户 (AZUREWLBACKUPHANAUSER) 没有被分配以下一个或多个角色:
  • 对于 MDC,DATABASE ADMIN 和 BACKUP ADMIN(适用于 HANA 2.0 SPS05 及以上版本)在还原期间创建新数据库。
  • 对于 SDC,BACKUP ADMIN 会在还原过程中创建新数据库。
  • 使用 CATALOG READ 读取备份目录。
  • 要访问一些私有表,请使用SAP_INTERNAL_HANA_SUPPORT。 仅对于 HANA 2.0 SPS04 Rev 46 之前的 SDC 和 MDC 版本是必需的。 HANA 2.0 SPS04 版本 46 及更高版本不需要此角色。 这是因为,我们现在通过 HANA 团队提供的修复,从公共表中获取所需信息。
建议的操作 若要解决此问题,请将所需的角色和权限手动添加到备份用户 (AZUREWLBACKUPHANAUSER)。 或者,可以在 SAP HANA 实例上下载并运行预注册脚本

用户错误数据库用户密码已过期

错误消息 Database/Backup user's password expired.
可能的原因 预注册脚本创建的数据库/备份用户不会设置密码的到期时间。 但是,如果更改了该设置,则可能会出现此错误。
建议的操作 在SAP HANA实例上下载并运行 pre-registration 脚本以解决此问题。

用户错误不一致SSFS

错误消息 SAP HANA error
可能的原因 从SAP HANA引擎收到的不一致的安全存储文件系统(SSFS)错误。
建议的操作 请与SAP HANA团队协作解决此问题。 若要了解详细信息,请参阅 SAP 说明 0002097613。

用户错误无法连接到Azure Active Directory服务

错误消息 Unable to connect to the AAD service from the HANA system.
可能的原因 由于防火墙或代理设置,备份扩展的插件服务帐户不允许出站连接到 Microsoft Entra ID。
建议的操作 修复出站连接到 Microsoft Entra ID 的防火墙或代理设置以确保连接成功。

用户错误配置的SSL CA存储

错误消息 Misconfigured CA store
可能的原因 备份扩展的插件宿主进程无法访问根 CA 存储(在 SLES 中的 /var/lib/ca-certificates/ca-bundle.pem)。
建议的操作 通过使用 chmod o+r 还原原始权限来修复 CA 存储问题。 然后重启插件主机服务,这是确保备份和还原成功的必要步骤。

用户错误备份失败因为补救备份正在进行中

错误消息 Remedial Backup in progress.
可能的原因 Azure Backup触发修正的完整备份来处理 LSN 日志链中断。 虽然补救性完整备份正在进行,但通过门户/CLI 触发的备份(完整/差异/增量)失败并出现此错误。
建议的操作 请等待补救性完整备份成功完成,然后再触发其他备份。

操作取消,因为存在冲突的正在运行的用户操作错误

错误消息 Conflicting operation in progress.
可能的原因 通过门户/CLI/本机 HANA 客户端触发完整/差异/增量备份,而另一个完整/差异/增量备份已在进行中。
建议的操作 请在触发新的完整/增量备份之前先等待活动备份作业完成。

操作已取消,因为正在运行的自动修复操作存在冲突 用户错误

错误消息 Auto-heal Full backup in progress.
可能的原因 Azure Backup触发自动修复完整备份以解析 UserErrorHANALSNValidationFailure。 虽然自动修复备份正在进行,但 HANA 触发的所有日志备份均会失败,失败信息为“OperationCancelledBecauseConflictingAutohealOperationRunningUserError”。
自动修复完整备份完成后,日志和所有其他备份将开始按预期方式工作。
建议的操作 请在触发新的完整/增量备份之前先等待自动修复完整备份完成。

环境预注册脚本运行错误

用户错误:Hana预脚本未运行

UserErrorPreregistrationScriptNotRun

错误消息 Pre-registration script not run.
可能的原因 用于设置环境的SAP HANA预注册脚本尚未运行。
建议的操作 在SAP HANA实例上下载并运行 pre-registration 脚本

用户错误目标PO已存在未指定覆盖

错误消息 Target database cannot be overwritten for Restore.
可能的原因 目标数据库已存在,但无法进行覆盖。 在门户/CLI 上的还原流程中未设置强制覆盖选项。
建议的操作 请使用所选的“强制覆盖”选项来还原数据库,或将数据库还原为其他目标数据库。

用户错误恢复系统脚本未能触发还原

错误消息 recoverSys.py could not be run successfully to restore System DB.
可能的原因 导致系统 DB 还原失败的可能原因包括:
  • Azure Backup在 HANA 计算机上找不到 recoverSys.py。 当 HANA 环境未正确设置时,会发生这种情况。
  • 存在 recoverSys.py ,但触发此脚本时,它无法调用 HANA 来执行还原。
  • recoverSys.py 已成功调用 HANA 来执行还原,但 HANA 无法还原。
建议的操作
  • 对于问题 1,请与 SAP HANA 团队协作解决此问题。
  • 对于 2 和 3,请在 sid-adm 提示符中运行 HDBsettings.sh 命令,并查看日志跟踪。 例如 ,/usr/sap/SID/HDB00/HDBsettings.sh
与SAP HANA团队共享这些发现,以解决此问题。

用户错误:数据库名称格式不正确

错误消息 Restored database name not in correct format.
可能的原因 你提供的已还原数据库名称未采用可接受的/预期的格式。
建议的操作 请确保还原的数据库名称以字母开头,并且不应包含数字或下划线以外的任何符号。
名称最多只能包含 127 个字符,不能以“_SYS_”开头。

UserErrorDefaultSidAdmDirectoryChanged

错误消息 Default sid-adm directory changed.
可能的原因 默认 sid-adm 目录已更改, HDBsettings.sh 在此默认目录中不可用。
建议的操作 如果 HXE 是 SID,请确保以 sid-adm 用户身份将环境变量 HOME 设置为 /usr/sap/HXE/home。

UserErrorHDBsettingsScriptNotFound (用户错误:未找到HDB设置脚本)

错误消息 HDBsettings.sh file cannot be found.
可能的原因 由于 <sid>adm 用户环境找不到 HDBsettings.sh 文件来触发还原,系统数据库还原失败 。
建议的操作 请与SAP HANA团队协作解决此问题。

如果 HXE 是 SID,请确保以 sid-adm 用户身份将环境变量 HOME 设置为 /usr/sap/HXE/home。

用户错误:系统驱动器上没有足够的空间用于扩展元数据

错误消息 Insufficient space on HANA machine to perform Configure Backup, Backup or Restore activities.
可能的原因 HANA 计算机上的磁盘空间几乎已满或已满,导致“配置备份”、“备份”或“还原”操作失败。
建议的操作 检查 HANA 计算机上的磁盘空间,确保有足够的空间可用于成功完成“配置备份”、“备份”或“还原”操作。

云Dos绝对限制已达

错误消息 Operation is blocked as you have reached the limit on number of operations permitted in 24 hours.
可能的原因 达到 24 小时内允许的最大操作数量限制后,会出现此错误。

例如:如果已达到每日可触发的配置备份作业数限制,而你尝试针对新项配置备份,则将出现此错误。
建议的操作 通常,在 24 小时后重试操作即可解决此问题。 但是,如果问题仍然存在,可以联系Microsoft support寻求帮助。

云端DoS绝对限制已达重试

错误消息 Operation is blocked as the vault has reached its maximum limit for such operations permitted in a span of 24 hours.
可能的原因 达到 24 小时内允许的最大操作数量限制后,会出现此错误。 此错误通常出现在执行大规模操作(例如修改策略或自动保护)时。 与 CloudDosAbsoluteLimitReached 的情况不同,你对于缓解这种状态几乎无能为力。 事实上,Azure Backup服务将针对所有相关项目在内部重试操作。

例如:如果使用某个策略保护了大量的数据源,而你尝试修改该策略,则会针对每个受保护项触发配置保护作业,因此有时可能会达到每日允许的最大此类操作数量限制。
建议的操作 Azure Backup服务将在 24 小时后自动重试此作。

用户错误无效Backint

错误消息 找到无效的 hdbbackint 可执行文件。
可能的原因 1. 由于新位置的存储空间不足,将 Backint 路径从 /opt/msawb/bin 更改为 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 的操作失败。

2. 位于 的 hdbbackint 实用工具没有可执行权限或正确的所有权。
建议的操作 1.请确保 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 或要保存备份的路径上有可用空间。

2. 确保 sapsys 组通过运行 命令对 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 文件具有适当的权限。

UserErrorHanaSQLQueryFailed

错误消息 在 SAP HANA 服务器上运行查询时操作失败。

由于此用户错误导致的所有失败操作是因在运行查询时 SAP HANA 端出现的问题。 附加细节清晰传达了错误信息。
可能的原因 - 磁盘损坏问题。
- 内存分配问题。
- 使用的数据库过多。
- 拓扑更新问题。
建议的操作 请与SAP HANA团队协作解决此问题。 但是,如果问题仍然存在,可以联系Microsoft support以获取进一步帮助。

用户错误恢复目标目录缺失

错误消息 PreRestoreDataParamsPrep: Target directory 不存在。
可能的原因 由于为还原选择的目录在目标服务器上不存在或该目录无法访问,因此,还原为文件将失败。
建议的操作 验证所选目录在目标服务器上是否可用,并确保在还原时选择了正确的目标服务器。

扩展升级时作业已取消

错误消息 备份作业已取消,因为工作负荷备份扩展服务已重启来进行升级。
可能的原因 由于在执行备份/还原操作期间进行了自动扩展升级,备份和还原作业失败。
建议的操作 等待扩展升级完成。 然后,HANA 会重新触发失败的日志备份(如果有)。

但是,失败的完全/差异/增量备份不会由Azure Backup重新触发,需要手动重试此作。

恢复SAP HANA数据库的检查流程

还原SAP HANA数据库时,请确保遵循以下准则:

单容器数据库 (SDC) 还原

在将 HANA 的单容器数据库 (SDC) 还原到另一台 SDC 计算机时,请注意输入。 数据库名称应采用小写形式,后跟括在括号中的sdc。 HANA 实例将以大写字母显示。

已对 SDC HANA 实例 “H21” 进行了备份。 备份项页会将备份项名称显示为“h21(sdc)”。 如果尝试将此数据库还原到另一个目标 SDC(如 H11),则需要提供以下输入。

Restored SDC 数据库名称

请注意以下几点:

  • 默认情况下,还原的数据库名称将用备份项名称填充。 在本例中为 h21(sdc)
  • 选择 H11 作为目标不会自动更改已还原的数据库名称。 应将其编辑为“h11(sdc)”。 对于 SDC,还原的数据库名称将是小写字母后跟用英文括号括起的“sdc”的目标实例 ID。
  • 由于 SDC 只能包含一个数据库,因此还需要选择相应的复选框,以允许使用恢复点数据替代现有的数据库数据。
  • Linux 区分大小写。 因此请小心保留大小写。

多容器数据库 (MDC) 还原

在 HANA 的多容器数据库中,标准配置是 SYSTEMDB 加上一个或多个租户数据库。 还原整个 SAP HANA 实例会同时还原 SYSTEMDB 和租户数据库。 首先还原 SYSTEMDB,然后再还原租户数据库。 系统数据库实质上旨在覆盖所选目标上的系统信息。 这种还原还会替代目标实例中与 BackInt 相关的信息。 因此,在将系统数据库还原到目标实例后,请再次运行注册前脚本。 只有这样,随后的租户数据库还原才会成功。

备份复制的 VM

方案 1

原始 VM 是使用Azure Site Recovery或Azure VM 备份复制的。 新 VM 是为模拟旧的 VM 而构建的。 也就是说,设置完全相同。 (这是因为原始 VM 已删除,还原是从 VM 备份或Azure Site Recovery完成的)。

此方案可包含两种可能的情况。 了解如何在这两种情况下备份复制的 VM:

  1. 创建的新 VM 与已删除的 VM 同名,并且位于已删除的 VM 所属的资源组和订阅中。

    • 此扩展已在 VM 中,但对所有服务都不可见
    • 运行预注册脚本
    • 在 Azure portal(备份 ->查看详细信息 ->选择相关的 Azure VM ->重新注册)
    • 然后,现有的已备份数据库(源自已删除的 VM)应该会成功开始备份
  2. 创建的新 VM 会出现以下两种情况之一:

    • 名称与已删除的 VM 不同
    • 名称与已删除的 VM 相同,但其资源组或订阅与被删除的 VM 相比不同。

    如果是这样,请执行以下步骤:

    • 此扩展已在 VM 中,但对所有服务都不可见
    • 运行预注册脚本
    • 如果发现并保护新数据库,你将在门户中看到重复的活动数据库。 为避免出现这种情况,请对旧数据库停止保护并保留数据。 然后继续执行其余步骤。
    • 探索数据库
    • 对这些数据库启用备份
    • 现有的已备份数据库(来自已删除的 VM)继续存储在保管库中。 这些数据库连同其保留的备份将根据策略一起存储。

方案 2

原始 VM 是使用Azure Site Recovery或Azure VM 备份复制的。 新 VM 是根据内容构建的 — 将用作模板。 该 VM 是新的,并具有新的 SID。

请按照以下步骤对新 VM 启用备份:

  • 此扩展已在 VM 上,但对所有服务都不可见
  • 运行预注册脚本。 根据新 VM 的 SID,可能会出现两种情况:
    • 原始 VM 和新 VM 具有相同的 SID。 预注册脚本将成功运行。
    • 原始 VM 和新 VM 具有不同的 SID。 预注册脚本将会失败。 请联系Azure支持以获取帮助。
  • 发现要备份的数据库
  • 对这些数据库启用备份

在同一 VM 上升级 SDC 版本或 MDC 版本

在不导致 SID 更改的情况下,OS 升级、SDC 版本更改或 MDC 版本更改可以按以下方式处理:

  • 确保新的 OS 版本、SDC 或 MDC 版本当前是由 Azure Backup 支持的。
  • 对数据库停止保护并保留数据
  • 执行升级或更新
  • 重新运行预注册脚本。 通常,升级过程可能会删除所需的角色。 运行预注册脚本以验证所有必需的角色。
  • 再次恢复对数据库的保护

从 SDC 升级到 MDC(不更改 SID)

要从 SDC 升级到 MDC 而不导致 SID 更改,可以按如下方式进行处理:

  • 确保新的 MDC 版本当前受 Azure Backup 的支持
  • 对旧的 SDC 数据库停止保护,同时保留数据
  • 执行升级。 完成后,HANA 系统现在便是包含一个系统 DB 和多个租户 DB 的 MDC
  • 重新运行预注册脚本
  • 在 Azure portal(备份 ->查看详细信息 ->选择相关的 Azure VM ->重新注册)
  • 选择重新发掘数据库以匹配同一 VM。 此操作应将步骤 3 中的新 DB 显示为 SYSTEMDB 和租户 DB,而不是 SDC
  • 旧的 SDC 数据库将继续位于保管库中,并根据策略保留旧的备份数据。
  • 为这些数据库配置备份

从 SDC 升级到 MDC(更改 SID)

要从 SDC 升级到 MDC 并更改 SID,可以按如下方式进行处理:

  • 确保新的 MDC 版本当前受 Azure Backup 的支持
  • 对旧的 SDC 数据库停止保护,同时保留数据
  • 移动位于 的 config.json 文件。
  • 执行升级。 在完成后,HANA 系统现在便是包含一个系统 DB 和多个租户 DB 的 MDC。
  • 重新运行具有正确详细信息(新 SID 和 MDC)的预注册脚本。 由于 SID 发生更改,你可能会遇到阻碍脚本成功运行的问题。 如果遇到问题,请联系Azure Backup支持人员。
  • 在 Azure portal (Backup ->查看详细信息 -> 选择相关的 Azure VM -> 重新注册)。
  • 选择重新发掘数据库以匹配同一 VM。 此操作应将步骤 3 中的新 DB 显示为 SYSTEMDB 和租户 DB,而不是 SDC。
  • 旧的 SDC 数据库将继续位于保管库中,并根据策略保留旧的备份数据。
  • 为这些数据库配置备份。

重新注册失败

在触发重新注册操作之前,请检查是否存在以下一种或多种症状:

  • VM 上所有操作(例如备份、还原和配置备份)都失败,并出现以下某一错误代码:WorkloadExtensionNotReachable、UserErrorWorkloadExtensionNotInstalled、WorkloadExtensionNotPresent、WorkloadExtensionDidntDequeueMsg。

  • 如果备份项的“备份状态”区域显示“无法访问”,请排除可能导致相同状态的所有其他原因 :

    • 缺少对 VM 执行与备份相关的操作的权限
    • VM 已关闭,因此无法进行备份
    • 网络问题

由于下面的一个或多个原因,可能会出现这些症状:

  • 扩展已从门户网站中删除或卸载。
  • 通过就地磁盘还原,VM 被恢复到过去的时间点。
  • 该 VM 已关闭较长时间,因此其上的扩展配置已过期。
  • VM 已删除。 另外,在已删除 VM 所在的同一资源组中创建了另一个同名的 VM。

在上述方案中,我们建议你对 VM 触发重新注册操作。

SAP HANA数据库日志备份的常见问题

尽管完整备份成功,但日志备份未触发。

可能的原因:触发日志备份时SAP HANA数据库的值不正确。

Recommended action:确保正确设置SAP HANA配置的以下值:

  • enable_auto_log_backup:Yes
  • log_backup_using_backint:真
  • catalog_backup_using_backint:真
  • log_mode:正常
  • log_backup_timeout_s:与Azure portal的日志备份策略相同(频率为秒)。

后续步骤