排查 Azure 上的 SAP HANA 数据库备份问题
本文提供了有关在 Azure 虚拟机上备份 SAP HANA 数据库的故障排除信息。 有关目前支持的 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 实例上运行该脚本,或手动将 SAP_INTERNAL_HANA_SUPPORT 角色分配给备份用户 (AZUREWLBACKUPHANAUSER)。 注意 如果使用 HANA 2.0 SPS04 Rev 46 及更高版本,则不会发生此错误,因为在这些 HANA 版本中已弃用 SAP_INTERNAL_HANA_SUPPORT 角色。 |
UserErrorInOpeningHanaOdbcConnection
错误消息 | Failed to connect to HANA system |
---|---|
可能的原因 |
|
建议的操作 | 检查系统是否正在运行。 如果一个或多个数据库正在运行,请确保设置了所需的权限。 为此,请下载预注册脚本并在 SAP HANA 实例上运行该脚本。 |
UserErrorHanaInstanceNameInvalid
错误消息 | The specified SAP HANA instance is either invalid or can't be found |
---|---|
可能的原因 |
|
建议的操作 |
|
UserErrorHANALSNValidationFailure
错误消息 | Backup log chain is broken |
---|---|
可能的原因 | 有多种原因可以触发 HANA LSN 日志链中断,包括:
|
建议的操作 | 为解决此问题,Azure 备份会触发自动修复完整备份。 虽然此自动修复备份正在进行中,但 HANA 触发的所有日志备份都将失败,并出现 OperationCancelledBecauseConflictingAutohealOperationRunningUserError。 自动修复完整备份完成后,日志和所有其他备份将开始按预期方式工作。 如果在 24 小时内未看到自动修复完整备份触发或任何成功的备份(完整/差异/增量),请联系 Microsoft 支持部门。 |
UserErrorSDCtoMDCUpgradeDetected
错误消息 | SDC to MDC upgrade detected. |
---|---|
可能的原因 | 将 SDC 系统升级到 MDC 时,备份失败并出现此错误。 |
建议的操作 | 若要排查和解决问题,请参阅 SDC 到 MDC 的升级。 |
UserErrorInvalidBackintConfiguration
错误消息 | Backups will fail with this error when the Backint Configuration is incorrectly updated. |
---|---|
可能的原因 | 配置保护流期间 Azure 备份更新的 backint 配置由客户更改/更新。 |
建议的操作 | 检查是否设置了以下 (Backint) 参数:
|
UserErrorIncompatibleSrcTargetSystemsForRestore
错误消息 | The source and target systems for restore are incompatible. |
---|---|
可能的原因 | 当源和目标 HANA 数据库以及系统不兼容时,还原流失败并出现此错误。 |
建议的操作 | 确保还原方案不属于以下可能的不兼容还原: 案例 1:在还原过程中无法重命名 SYSTEMDB。 案例 2:源 — SDC 和目标 — MDC:源数据库无法还原为目标上的 SYSTEMDB 或租户 DB。 案例 3:源 — MDC 和目标 — SDC:源数据库(SYSTEMDB 或租户 DB)无法还原到目标。 若要了解详细信息,请参阅 SAP 支持启动板中的说明 1642148。 |
UserErrorHANAPODoesNotExist
错误消息 | Database configured for backup doesn't exist. |
---|---|
可能的原因 | 如果删除配置了备份的数据库,对此数据库的所有计划备份和按需备份都将失败。 |
建议的操作 | 验证数据库是否已删除。 重新创建数据库或停止保护(保留或不保留数据)数据库。 |
UserErrorInsufficientPrivilegeOfDatabaseUser
错误消息 | Azure Backup does not have enough privileges to carry out Backup and Restore operations. |
---|---|
可能的原因 | 没有给预注册脚本创建的备份用户 (AZUREWLBACKUPHANAUSER) 分配以下一个或多个角色:
|
建议的操作 | 若要解决此问题,请将所需的角色和权限手动添加到备份用户 (AZUREWLBACKUPHANAUSER)。 也可下载预注册脚本并在 SAP HANA 实例上运行该脚本。 |
UserErrorDatabaseUserPasswordExpired
错误消息 | Database/Backup user's password expired. |
---|---|
可能的原因 | 预注册脚本创建的数据库/备份用户不会设置密码的到期时间。 但是,如果更改了该设置,则可能会出现此错误。 |
建议的操作 | 下载预注册脚本并在 SAP HANA 实例上运行该脚本,以解决此问题。 |
UserErrorInconsistentSSFS
错误消息 | SAP HANA error |
---|---|
可能的原因 | 从 SAP HANA 引擎收到的安全存储文件系统 (SSFS) 不一致错误。 |
建议的操作 | 请与 SAP HANA 团队合作来解决此问题。 若要了解详细信息,请参阅 SAP 说明 0002097613。 |
UserErrorCannotConnectToAzureActiveDirectoryService
错误消息 | Unable to connect to the AAD service from the HANA system. |
---|---|
可能的原因 | 作为备份扩展插件服务帐户的防火墙或代理设置不允许与 Microsoft Entra ID 建立出站连接。 |
建议的操作 | 修复防火墙或代理设置,使到 Microsoft Entra ID 的出站连接成功。 |
UserErrorMisConfiguredSslCaStore
错误消息 | Misconfigured CA store |
---|---|
可能的原因 | 备份扩展的插件主机进程无法访问根 CA 存储(对于 SLES,其位置为 /var/lib/ca-certificates/ca-bundle.pem)。 |
建议的操作 | 通过使用 chmod o+r 还原原始权限来修复 CA 存储问题。 然后重启插件主机服务,使备份和还原成功。 |
UserErrorBackupFailedAsRemedialBackupInProgress
错误消息 | Remedial Backup in progress. |
---|---|
可能的原因 | Azure 备份会触发补救性完整备份来处理 LSN 日志链中断。 虽然补救性完整备份正在进行,但通过门户/CLI 触发的备份(完整/差异/增量)失败并出现此错误。 |
建议的操作 | 请等待补救性完整备份成功完成,然后再触发其他备份。 |
OperationCancelledBecauseConflictingOperationRunningUserError
错误消息 | Conflicting operation in progress. |
---|---|
可能的原因 | 通过门户/CLI/本机 HANA 客户端触发完整/差异/增量备份,而另一个完整/差异/增量备份已在进行中。 |
建议的操作 | 请在触发新的完整/增量备份之前先等待活动备份作业完成。 |
OperationCancelledBecauseConflictingAutohealOperationRunning UserError
错误消息 | Auto-heal Full backup in progress. |
---|---|
可能的原因 | Azure 备份触发自动修复完整备份,以解决 UserErrorHANALSNValidationFailure。 虽然此自动修复备份正在进行中,但 HANA 触发的所有日志备份都将失败,并出现 OperationCancelledBecauseConflictingAutohealOperationRunningUserError。 自动修复完整备份完成后,日志和所有其他备份将开始按预期方式工作。 |
建议的操作 | 请在触发新的完整/增量备份之前先等待自动修复完整备份完成。 |
环境预注册脚本运行错误
UserErrorHanaPreScriptNotRun
UserErrorPreregistrationScriptNotRun
错误消息 | Pre-registration script not run. |
---|---|
可能的原因 | 用于设置环境的 SAP HANA 预注册脚本尚未运行。 |
建议的操作 | 下载预注册脚本并在 SAP HANA 实例上运行该脚本。 |
UserErrorTargetPOExistsOverwriteNotSpecified
错误消息 | Target database cannot be overwritten for Restore. |
---|---|
可能的原因 | 目标数据库存在,但无法覆盖。 门户/CLI 上的还原流中未设置强制覆盖。 |
建议的操作 | 请使用所选的“强制覆盖”选项来还原数据库,或将数据库还原为其他目标数据库。 |
UserErrorRecoverySysScriptFailedToTriggerRestore
错误消息 | RecoverySys.py could not be run successfully to restore System DB. |
---|---|
可能的原因 | 导致系统 DB 还原失败的可能原因包括:
|
建议的操作 |
|
UserErrorDBNameNotInCorrectFormat
错误消息 | Restored database name not in correct format. |
---|---|
可能的原因 | 你提供的已还原数据库名称未采用可接受的/预期的格式。 |
建议的操作 | 请确保还原的数据库名称以字母开头,并且不应包含数字或下划线以外的任何符号。 名称最多只能包含 127 个字符,不能以“_SYS_”开头。 |
UserErrorDefaultSidAdmDirectoryChanged
错误消息 | Default sid-adm directory changed. |
---|---|
可能的原因 | 默认 sid-adm 目录已更改,HDBSetting.sh 在此默认目录中不可用。 |
建议的操作 | 如果 HXE 是 SID,请确保以 sid-adm 用户身份将环境变量 HOME 设置为 /usr/sap/HXE/home。 |
UserErrorHDBsettingsScriptNotFound
错误消息 | HDBSetting.sh file cannot be found. |
---|---|
可能的原因 | 由于 <sid>adm 用户环境找不到 HDBsettings.sh 文件来触发还原,系统数据库还原失败 。 |
建议的操作 | 请与 SAP HANA 团队合作来解决此问题。 如果 HXE 是 SID,请确保以 sid-adm 用户身份将环境变量 HOME 设置为 /usr/sap/HXE/home。 |
UserErrorInsufficientSpaceOnSystemDriveForExtensionMetadata
错误消息 | Insufficient space on HANA machine to perform Configure Backup, Backup or Restore activities. |
---|---|
可能的原因 | HANA 计算机上的磁盘空间几乎已满或已满,导致“配置备份”、“备份”或“还原”操作失败。 |
建议的操作 | 检查 HANA 计算机上的磁盘空间,确保有足够的空间可用于成功完成“配置备份”、“备份”或“还原”操作。 |
CloudDosAbsoluteLimitReached
错误消息 | Operation is blocked as you have reached the limit on number of operations permitted in 24 hours. |
---|---|
可能的原因 | 达到 24 小时内允许的最大操作数量限制后,会出现此错误。 例如:如果已达到每日可触发的配置备份作业数限制,而你尝试针对新项配置备份,则将出现此错误。 |
建议的操作 | 通常,在 24 小时后重试操作即可解决此问题。 但是,如果问题持续出现,可以联系 Microsoft 支持人员获得帮助。 |
CloudDosAbsoluteLimitReachedWithRetry
错误消息 | Operation is blocked as the vault has reached its maximum limit for such operations permitted in a span of 24 hours. |
---|---|
可能的原因 | 达到 24 小时内允许的最大操作数量限制后,会出现此错误。 此错误通常出现在执行大规模操作(例如修改策略或自动保护)时。 与 CloudDosAbsoluteLimitReached 的情况不同,你对于缓解这种状态几乎无能为力。 事实上,Azure 备份服务将针对相关的所有项目,在内部重试操作。 例如:如果使用某个策略保护了大量的数据源,而你尝试修改该策略,则会针对每个受保护项触发配置保护作业,因此有时可能会达到每日允许的最大此类操作数量限制。 |
建议的操作 | Azure 备份服务会在 24 小时后自动重试此操作。 |
UserErrorInvalidBackint
错误消息 | 找到了无效的 hdbbackint 可执行文件。 |
---|---|
可能的原因 | 1. 由于新位置的存储空间不足,将 Backint 路径从 /opt/msawb/bin 更改为 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 的操作失败。 2. 位于 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 的 hdbbackint 实用工具没有可执行权限或正确的所有权。 |
建议的操作 | 1.请确保 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 或要保存备份的路径上有可用空间。 2. 通过运行命令 chmod 755 确保 sapsys 组对 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 文件具有适当的权限。 |
UserErrorHanaSQLQueryFailed
错误消息 | 在 SAP HANA 服务器上运行查询时操作失败。 收到此用户错误的所有失败操作都是由于在运行查询时在 SAP HANA 端的一个问题导致的。 更多详细信息具有该错误的明确消息。 |
---|---|
可能的原因 | - 磁盘损坏问题。 - 内存分配问题。 - 使用的数据库过多。 - 拓扑更新问题。 |
建议的操作 | 请与 SAP HANA 团队合作来解决此问题。 然而,如果问题持续出现,可以联系 Microsoft 支持人员获取更多帮助。 |
UserErrorRestoreTargetDirectoriesAbsent
错误消息 | PreRestoreDataParamsPrep: Target directory 不存在。 |
---|---|
可能的原因 | 由于为还原选择的目录在目标服务器上不存在或该目录无法访问,因此,还原为文件将失败。 |
建议的操作 | 验证所选目录在目标服务器上是否可用,并确保在还原时选择了正确的目标服务器。 |
JobCancelledOnExtensionUpgrade
错误消息 | 备份作业已取消,因为工作负荷备份扩展服务已重启来进行升级。 |
---|---|
可能的原因 | 由于在执行备份/还原操作期间进行了自动扩展升级,备份和还原作业失败。 |
建议的操作 | 等待扩展升级完成。 然后,HANA 会重新触发失败的日志备份(如果有)。 但是,失败的完全/差异/增量备份不会由 Azure 备份重新触发,你需要手动重新触发此操作。 |
还原检查
单容器数据库 (SDC) 还原
在将 HANA 的单容器数据库 (SDC) 还原到另一台 SDC 计算机时请小心提供输入。 数据库名称应采用小写形式,后跟用英文括号括起的“sdc
”。 HANA 实例将以大写字母显示。
假设备份了 SDC HANA 实例“H21”。 备份项页会将备份项名称显示为“h21(sdc)
”。 如果尝试将此数据库还原到另一个目标 SDC(如 H11),则需要提供以下输入。
请注意以下几点:
- 默认情况下,还原的数据库名称将用备份项名称填充。 在本例中为
h21(sdc)
。 - 选择 H11 作为目标不会自动更改已还原的数据库名称。 应将其编辑为“
h11(sdc)
”。 对于 SDC,还原的数据库名称将是小写字母后跟用英文括号括起的“sdc
”的目标实例 ID。 - 由于 SDC 只能包含一个数据库,因此还需要选择相应的复选框,以允许使用恢复点数据替代现有的数据库数据。
- 在 Linux 中,此项输入区分大小写。 因此请小心保留大小写。
多容器数据库 (MDC) 还原
在 HANA 的多容器数据库中,标准配置是 SYSTEMDB 加上一个或多个租户数据库。 还原整个 SAP HANA 实例会还原 SYSTEMDB 和租户 DB。 需要先还原 SYSTEMDB,然后继续还原租户数据库。 还原系统数据库实质上旨在替代所选目标上的系统信息。 这种还原还会替代目标实例中与 BackInt 相关的信息。 因此,在将系统数据库还原到目标实例后,请再次运行注册前脚本。 只有这样,随后的租户 DB 还原才会成功。
备份复制的 VM
方案 1
使用 Azure Site Recovery 或 Azure VM 备份复制原始 VM。 新 VM 是为模拟旧的 VM 而构建的。 也就是说,设置完全相同。 (这是因为原始 VM 已删除,并且已通过 VM 备份或 Azure Site Recovery 完成了还原)。
此方案可包含两种可能的情况。 了解如何在这两种情况下备份复制的 VM:
创建的新 VM 与已删除的 VM 同名,并且位于已删除的 VM 所属的资源组和订阅中。
- 此扩展已在 VM 中,但对所有服务都不可见
- 运行预注册脚本
- 在 Azure 门户中为同一计算机重新注册扩展(“备份”>“查看详细信息”->“选择相关 Azure VM”->“重新注册”)
- 然后,现有的已备份数据库(源自已删除的 VM)应该会成功开始备份
创建的新 VM 会出现以下两种情况之一:
- 名称与已删除的 VM 不同
- 名称与已删除的 VM 相同,但资源组或订阅不同于已删除的 VM
如果是这样,请执行以下步骤:
- 此扩展已在 VM 中,但对所有服务都不可见
- 运行预注册脚本
- 如果发现并保护新数据库,你将在门户中看到重复的活动数据库。 为避免出现这种情况,请对旧数据库停止保护并保留数据。 然后继续执行其余步骤。
- 发现数据库
- 对这些数据库启用备份
- 现有的已备份数据库(来自已删除的 VM)继续存储在保管库中。 这些数据库连同其保留的备份将根据策略一起存储。
方案 2
使用 Azure Site Recovery 或 Azure VM 备份复制原始 VM。 新 VM 是根据内容构建的 — 将用作模板。 该 VM 具有新的 SID。
请按照以下步骤对新 VM 启用备份:
- 此扩展已在 VM 上,但对所有服务都不可见
- 运行预注册脚本。 根据新 VM 的 SID,可能会出现两种情况:
- 原始 VM 和新 VM 具有相同的 SID。 预注册脚本将成功运行。
- 原始 VM 和新 VM 具有不同的 SID。 预注册脚本将会失败。 请联系 Azure 支持人员以获取此方案的帮助。
- 发现要备份的数据库
- 对这些数据库启用备份
在同一 VM 上升级 SDC 版本或 MDC 版本
要升级 OS、更改 SDC 版本或更改 MDC 版本,但不会导致 SID 更改,可以按以下方式处理:
- 确保新的 OS 版本、SDC 或 MDC 版本当前受 Azure 备份支持
- 对数据库停止保护并保留数据
- 执行升级或更新
- 重新运行预注册脚本。 通常,升级过程可能会删除所需的角色。 运行预注册脚本以验证所有必需的角色。
- 再次恢复对数据库的保护
从 SDC 升级到 MDC(不更改 SID)
要从 SDC 升级到 MDC 而不导致 SID 更改,可以按如下方式进行处理:
- 确保新的 MDC 版本当前受 Azure 备份支持
- 对旧的 SDC 数据库停止保护并保留数据
- 执行升级。 完成后,HANA 系统现在便是包含一个系统 DB 和多个租户 DB 的 MDC
- 重新运行预注册脚本
- 在 Azure 门户中为同一计算机重新注册扩展(“备份”>“查看详细信息”->“选择相关 Azure VM”->“重新注册”)
- 针对同一 VM 选择“重新发现 DB”。 此操作应将步骤 3 中的新 DB 显示为 SYSTEMDB 和租户 DB,而不是 SDC
- 旧的 SDC 数据库将继续位于保管库中,并根据策略保留旧的备份数据。
- 为这些数据库配置备份
从 SDC 升级到 MDC(更改 SID)
要从 SDC 升级到 MDC 并更改 SID,可以按如下方式进行处理:
- 确保新的 MDC 版本当前受 Azure 备份支持
- 对旧的 SDC 数据库停止保护并保留数据
- 移动位于
/opt/msawb/etc/config/SAPHana/
的 config.json 文件。 - 执行升级。 在完成后,HANA 系统现在便是包含一个系统 DB 和多个租户 DB 的 MDC。
- 重新运行具有正确详细信息(新 SID 和 MDC)的预注册脚本。 由于 SID 发生更改,你可能会遇到阻碍脚本成功运行的问题。 如果遇到问题,请联系 Azure 备份支持部门。
- 在 Azure 门户中为同一计算机重新注册扩展(“备份”->“查看详细信息”-> 选择相关 Azure VM ->“重新注册”)。
- 针对同一 VM 选择“重新发现 DB”。 此操作应将步骤 3 中的新 DB 显示为 SYSTEMDB 和租户 DB,而不是 SDC。
- 旧的 SDC 数据库将继续位于保管库中,并根据策略保留旧的备份数据。
- 为这些数据库配置备份。
重新注册失败
在触发重新注册操作之前,请检查是否存在以下一种或多种症状:
VM 上所有操作(例如备份、还原和配置备份)都失败,并出现以下某一错误代码:WorkloadExtensionNotReachable、UserErrorWorkloadExtensionNotInstalled、WorkloadExtensionNotPresent、WorkloadExtensionDidntDequeueMsg。
如果备份项的“备份状态”区域显示“无法访问”,请排除可能导致相同状态的所有其他原因 :
- 缺少对 VM 执行与备份相关的操作的权限
- VM 已关闭,因此无法进行备份
- 网络问题
由于下面的一个或多个原因,可能会出现这些症状:
- 扩展从门户中删除或卸载。
- VM 通过就地磁盘还原及时还原。
- 该 VM 已关闭较长时间,因此其上的扩展配置已过期。
- VM 已删除。 另外,在已删除 VM 所在的同一资源组中创建了另一个同名的 VM。
在上述方案中,我们建议你对 VM 触发重新注册操作。
备份 SAP HANA 数据库日志
尽管完整备份成功,但日志备份未触发。
可能的原因:SAP HANA 数据库的值不正确,无法触发日志备份。
建议的操作:确保正确设置 SAP HANA 配置的以下值:
enable_auto_log_backup
:Yeslog_backup_using_backint
:Truecatalog_backup_using_backint
:Truelog_mode
:normallog_backup_timeout_s
:与 Azure 门户的日志备份策略相同(频率以秒为单位)。
下一步
- 查看有关在 Azure VM 上备份 SAP HANA 数据库的常见问题解答。