全部产品
Search
文档中心

云备份:SAP HANA备份常见问题

更新时间:Dec 26, 2024

本文为您介绍云备份使用中SAP HANA备份常见的问题以及对应的解决办法。

SAP HANA备份是什么

您可以使用云备份在阿里云上管理您SAP系统的备份服务。

云备份通过了SAP HANA Backint集成认证,兼容SAP HANA 1.0和2.0版本。您可以使用云备份客户端来备份ECS实例中部署的SAP HANA实例,并在需要时恢复数据库。更多信息请参见SAP HANA功能概览

此外,您还可以将数据中心的本地文件、VMWare虚拟机等备份到阿里云上的备份库中,针对阿里云上各个类型的数据,包括ECS文件、Oracle及MS SQL Server数据库、NAS服务、以及OSS服务上的数据,云备份提供了简单易用的原生数据保护功能。更多信息请参见什么是云备份

SAP HANA备份适用范围

  • 部署在阿里云ECS上的SAP HANA实例

  • Backint支持SAP HANA 1.0 SPS 09(Revision 94)及更高版本和SAP HANA 2.0 SPS 01及更高版本的MDC(Multitenant Database Containers),不支持SAP HANA 1.0 Single-container(单租户)的版本。

注册SAP HANA实例后,如何查看云备份客户端的运行状态和日志?

在云备份控制台注册完成后,SAP HANA实例的状态为已注册

默认日志路径为:/opt/alibabacloud/hbrclient/logs

您可以执行ps axu|grep hybrid,查看备份客户端运行状态。如果存在进程信息,说明已经启动,一切运行正常。

root     11472  0.0  0.0   9288  1552 pts/2    S+   16:11   0:00 grep --color=auto hybrid
root     30480  0.0  0.2  56296 17028 ?        Ssl  13:26   0:04 /opt/alibabacloud/hbr/client/hybridbackup -p 0

备份日志路径

HANA数据库备份客户端日志:/opt/alibabacloud/hbr/logs

HANA数据库backint日志:/usr/sap/{SID}/SYS/global/hdb/logs/

HANA数据库的备份日志:/usr/sap/{SID}/HDB{InstanceNumber}/{hostname}/trace/DB_{DBNAME}/backup.log

HANA数据库会自动管理和存储日志记录。您可以使用HANA Studio或者其他相关的工具,执行以下 SQL来查询和获取这些日志备份的内容。

select CAT.* from SYS_DATABASES.M_BACKUP_CATALOG CAT JOIN SYS_DATABASES.M_BACKUP_CATALOG_FILES FILS on CAT.BACKUP_ID = FILS.BACKUP_ID where CAT.entry_type_name = 'log backup' and CAT.state_name = 'successful' and FILS.DESTINATION_TYPE_NAME = 'backint' and CAT.database_name = 'SYSTEMDB' order by sys_end_time

安装SAP HANA客户端失败,错误提示“有多个/usr/sap/<SID>/SYS/global/hdb/opt路径”,如何解决?

  1. 远程登录目标ECS实例。

  2. 将不需要做备份的SAP HANA实例对应的/usr/sap/<SID>/SYS/global/hdb/opt重命名成/usr/sap/<SID>/SYS/global/hdb/opt_backup

  3. 返回云备份控制台,为该SAP HANA重新安装客户端。

同实例恢复时,数据库无法连接,如何解决?

当您新建恢复任务并恢复到源实例时,选择数据库发现数据库状态为无法连接,请进行如下操作:

image

  1. 检查HANA数据库是否启动。

  2. 检查SSL证书是否过期,如果证书过期,可选择:

    • 更换证书。

      image

    • 在控制台配置不验证SSL证书。

同实例恢复时,获取不到数据,如何解决?

当您新建恢复任务并恢复到源实例时,选择数据库发现没有数据,需要检查客户端状态是否正常。

image

恢复时无法找到备份记录如何解决

  • 问题现象

    当云服务器ECS重装操作系统、快照回滚,或者SAP HANA数据库卸载重新安装后,创建恢复任务时,可能会出现无法找到备份记录的情况。

    image

  • 根因分析

    在执行同实例恢复操作时,云备份服务首先会在预配置的SAP HANA备份路径中检索备份记录。需要注意的是,若ECS实例经历了操作系统重装、快照回滚或SAP HANA数据库被卸载及重新安装等操作,这些情况均可能导致存储在HANA数据库备份记录被清除。

  • 解决方案

    • 如果您在备份时已经开启Catalog备份使用Backint,则可以恢复。恢复步骤如下:

      1. 进入SAP HANA源实例删除ECS实例节点。

        image

      2. 重新注册新HANA实例,使用参数和之前保持一致。安装备份客户端,添加已删除的ECS实例节点。

        image

      3. 创建恢复任务,选择新注册的HANA实例进行恢复,即从源实例发起跨实例恢复任务。

        image

    • 待确认恢复完成后,且源实例备份数据不再使用,可以删除源实例。如果您在备份时没有开启Catalog备份使用Backint,则无法找到备份记录,但是备份数据还在。如果您需要恢复这些备份数据,具体操作,请参见使用Prefix方式恢复SAP HANA

HANA中sql执行失败,如何解决?

HANA 日志空间已满,可能导致 SQL 执行失败。请先清理磁盘空间,再重新尝试。

如何手动删除备份记录?

云备份侧无法手动删除 SAP HANA 数据,只能等待数据自动过期。您可以选中下述选项通过 SAP Studio 来进行删除操作。

image

实例已激活,数据库页面提示内部错误

如果云备份控制台的SAP HANA备份页面出现了错误提示,需要检查 HANA 许可证。您可以连接到 SYSTEMDB 并执行以下 SQL 查询所有数据库是否都包含了许可证。如果查询结果为空,则表示某个数据库缺少许可证。

SELECT * FROM M_LICENSE

更多信息,请参考https://launchpad.support.sap.com/#/notes/2619291

SAP HANA备份为何会失败,如何解决?

在执行SAP HANA备份时,客户端会连接到HANA实例并发送用于启动备份任务的SQL语句。如果该SQL语句成功执行,客户端将继续向HANA发送查询语句以获取备份进度和最终状态。当备份过程中遇到失败情况时,相关的错误信息会被记录在客户端的日志中。通过结合具体的任务时间和日志记录,可以有效地追踪并分析问题所在。以下是一些常见的错误问题:

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息,表明本地时间与服务端存在显著差异,建议首先调整本地时间,更佳的做法是启用NTP自动同步以确保时间的一致性。

    time="2021-11-04T16:24:17+08:00" level=info msg="InvalidTimeStamp.Expired retry, retryDelay: 5000 ms, retry times: 14" file=client.go line=377
  • 当出现备份任务失败,或备份任务全部显示取消状态(非人为手动取消),同时在backup.log日志中有No space left on device的提示,说明本地磁盘空间已满,需要清理之后再进行备份。

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息,并且控制台上没有显示任何错误信息,这可能是因为您配置了其他定时备份任务,与 SAP HANA 备份任务在执行时发生了冲突。

    time="2021-08-29T01:10:00+08:00" level=error msg="Execute hana backup failed : hbr: client returned error: ErrorCode=HanaSqlError, ErrorMessage=SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared., Data=, values=map[]" file=hanabackupjob.go line=98
  • 如果出现了非预期的备份失败或未执行告警,并且在备份历史中没有看到备份完成的记录,那么可能是MQTT请求超时导致的,可以在/opt/alibabacloud/hbr/logs/hybridbackup.log中查看对应时刻的日志。

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息,密码可能已经过期,需要及时更新。

    time="2023-11-26T00:00:08+08:00" level=error msg="SAP Error: SQL Error 447 - backup could not be completed: [110203] Not all data could be written: Expected 4096 but transferred 0, [110507] Backint exited with exit code 1 instead of 0. console output: Internal Error: The user account is in unknown status. " file=errorwrapper.go line=28
  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息,可能是您的时间戳不准确导致服务端拒绝了请求。

    time="2024-06-23T01:36:46+08:00" level=error msg="HBR DescribeUserBusinessStatus returns hbr: service returned error: StatusCode=400, Code=InvalidSecurityToken.Expired, Message=Specified SecurityToken is expired., RequestId=A6CDF56F-CA56-53E8-9342-24E19F768D40" file=client.go line=428

    您可选择以下方式检查时间戳:

    • 执行以下命令,观察返回结果中的System Time,该参数反映了当前系统时间与NTP时间的差异。若此偏差在几毫秒以内,即可判断时间戳处于正常状态。

      sudo chronyc tracking
    • 执行以下命令,观察返回结果中的offset,该参数反映了当前系统时间与NTP时间的差异。若此偏差在几毫秒以内,即可判断时间戳处于正常状态。

      ntpd -q
  • 如果控制台没有失败的记录,同时在/opt/alibabacloud/hbr/logs/hybridbackup.log日志中,看到如下错误信息:

    SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared.

    您可选择以下方式检查:

    • 是否有其他备份软件在相同时间做HANA备份。

    • 确保有数据备份的情况下重启HANA实例。更多信息,请参考 SAP HANA官方知识库

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息:

    [447] backup could not be completed, [1000002] Allocation failed ; $size$=16777216; $name$=DataPage; $type$=pool; $inuse_count$=6; $allocated_size$=17104896; $failure_type$=GLOBAL_ALLOCATION_LIMIT; $failure_flag$= (early exit)

    且控制台上有失败记录。

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息:

    "SQL Error 3584 - distributed SQL error:  [2617] executor: plan operation execution failed with an exception.exception:exception 30160: Failed to read password from key store. $name=$M_BACKUP_CONFIGURATION. $col=$IS_ROOT_KEY_BACKUP_PASSWORD_SET. $ci=$23\n,Exception in executor plan00468@$spdr-db:31001 while executing pop 1, Data=[], values=[]map[]"

    且控制台上备份任务状态为“失败”。

    该错误信息表明,在执行备份SQL语句时,SAP HANA系统返回了错误码3584的SQL错误,具体是在从密钥存储中读取密码时遇到了异常。这通常是SAP HANA相关组件的问题,建议您联系SAP HANA的运维人员或供应商以获得进一步的帮助和解决方案。

  • 如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现InstanceRAMRoleNotFound或如下错误信息:

    Failed to get client credential from Instance RAM role. hbr: client returned error: ErrorCode=InstanceRAMRoleNotFound, ErrorMessage=InstanceRAMRoleNotFound

    同时控制台上恢复任务状态一直处于“执行中”且无法停止。

    该错误信息表明,ECS上的AliyunECSAccessingHBRRole角色被收回,请登录ECS控制台重新授予此角色后重启备份客户端。更多信息,请参见ECS实例上为何会被授予AliyunECSAccessingHBRRole角色?是否可以收回不使用此角色?

ECS实例上为何会被授予AliyunECSAccessingHBRRole角色?是否可以收回不使用此角色?

为了确保SAP HANA备份的正常运行,必须在运行SAP HANA的ECS实例上安装云备份客户端。该客户端依赖于AliyunECSAccessingHBRRole角色来获取安全令牌并与服务端通信。如果此角色被收回,备份和恢复功能将无法正常工作。因此,请通过以下步骤确保SAP HANA备份的正常运行:

  1. 请登录ECS控制台重新授予AliyunECSAccessingHBRRole角色。具体操作,请参见为ECS实例授予RAM角色。

  2. 使用命令systemctl restart hybridbackup重启备份客户端或卸载客户端后重新安装。

查看备份任务时出现报错如何解决?

  • 失败现象

    当查看备份任务时,出现如下报错。

    image

    且/opt/alibabacloud/hbr/logs/hybridbackup.log中,出现如下错误信息:

    time="2023-12-01T14:38:23+08:00" level=error msg="prepare stmt SELECT count(*) FROM sys_databases.M_BACKUP_PROGRESS error : SQL Error 437 - only commands for license handling are allowed in current state" file=db.go line=220
  • 解决方法

    由于 HANA 2.0 需要注册许可证,因此需要使用多用户模式。

恢复任务失败如何解决?

失败现象:通过指定时间或指定备份使用较早时间点的备份点进行恢复,然后通过指定时间使用最新时间备份点再次进行恢复,恢复失败。

解决方法:连续多次恢复时,建议通过指定备份方式,选择备份点进行恢复。

云备份可以备份线下数据中心IDC里部署的SAP HANA吗?

不支持。但您可以先把SAP HANA备份到本机存储上,然后以文件的方式再备份到云备份。更多信息,请参见备份本地文件

备份SAP HANA,还需要额外再购买其他的云存储产品吗?

不需要。云备份是通过backint直接调用SAP HANA的备份接口,备份数据通过Pipe的方式备份到云备份后端的云存储上,不会占用SAP HANA ECS实例的存储空间,因此不需要再额外购买其他的云存储产品。

Single-container(单租户)的SAP HANA,可以用云备份的"SAP HANA备份"吗?

不可以,云备份控制台的SAP HANA备份使用的是backint接口。有两种解决方案:

  • 方案一:将SAP HANA备份到ECS实例的云盘上,使用云备份的本地文件备份功能。更多信息,请参见备份本地文件

  • 方案二:将SAP HANA从Single-container转换成multi-container,具体操作方法请参考SAP官方文档或咨询您的SAP伙伴。

SAP HANA的不同环境的备份可以放在不同备份仓库吗?

可以,在云备份控制台注册SAP HANA实例时,您可以新建或选择已有的备份仓库。当前支持的恢复方式包括如下:

SAP HANA备份支持跨地域(异地)备份功能吗?

支持。具体请参见使用镜像备份库实现跨地域备份

配置SAP HANA备份有哪些注意事项?

  • 如果您的SAP HANA是高可用部署架构,注册SAP HANA实例的主机地址请填写 HAVIP(高可用虚拟IP地址),这样可以保证集群发生切换后,备份作业也可以正常执行。

  • 备份参数默认不会开启backint备份SAP HANA的日志和catalog的功能,需要您手工为System DB和每个Tenant DB勾选上此配置,以确保在需要的时候可以正常完成数据库恢复操作。

image

说明

Tenant DB的参数配置会继承System DB的参数配置,请您仔细检查每个数据库的参数配置符合您的预期。

如何设置SAP HANA的备份数据保留周期?

  1. 登录云备份控制台,选择对应的实例。

    image

  2. 在数据库页签,选择System DB或Tenant DB,单击更多>设置保留时间

    image

  3. 默认的备份保留时间是永久保留,您可以按需修改。

    image

    参数

    说明

    保留时间设置

    • 自定义

      选择此项后,您可以自定义每天执行保留任务的时间,以及备份数据的保留时间。

    • 永久保留

      选择此项后,云备份将为您永久保留备份数据。

    保留任务执行时间

    仅当保留时间设置配置为自定义时,需要配置该参数。选择每天执行保留任务的时间。时间精确到秒。

    说明

    建议避开备份任务繁忙或者其他业务繁忙的时间段。

    备份保留时间

    仅当保留时间设置配置为自定义时,需要配置该参数。选择保留备份数据的时间。

    单位:天、周、月、年。最短保留时间为1天,最长保留时间为10年。

    说明
    • SAP HANA备份保留时间到期后,备份服务会自动清理过期的BACKINT备份与文件备份相关的catalog记录以及数据,清理后不可恢复。请根据实际情况谨慎配置备份保留时间。

    • 调整保留时间会对历史备份生效。数据保留任务每天执行一次,但备份库的统计信息会有12到24小时的延迟。因此,在调整备份数据的保留周期后,预计需要3个自然日才能观察到备份库数据量的变化。如果调整幅度较大(例如从保留2年缩短至2个月),数据保留任务会控制执行速度,导致备份库数据量的减少过程可能会持续一段时间。

收到短信或邮件告警提示备份失败,但是登录云备份控制台查看备份任务显示成功,是为什么?

  • 问题现象

    收到短信或邮件告警:“您的SAP HANA实例XXX(实例ID:cl-xxxxxxxx)中的数据库XXX备份失败,备份ID为0。请及时登录控制台查看和修复。 ”但实际上,当您登录云备份控制台时,该次备份记录却显示已完成且无异常提示。

  • 问题原因

    这可能是由于在备份期间有其他备份软件同时运行,或是SAP HANA自身存在问题所导致。您可以通过检查位于/opt/alibabacloud/hbrclient/logs/hybridbackup.log的日志文件,在告警的时间附近看到类似告警片段:

    time="2024-08-29T01:35:01+08:00" level=error msg="Execute sql `BACKUP DATA FOR PRD USING BACKINT ('/usr/sap/XXX/SYS/global/hdb/backint/DB_HHH/COMPLETE_DATA_BACKUP_2024_08_29_01_30') ASYNCHRONOUS` failed : SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared." file=db.go line=163
    time="2024-08-29T01:35:01+08:00" level=error msg="SAP Error: SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared." file=errorwrapper.go line=28

    该错误表明,云备份客户端通过连接SAP HANA执行了一条用于备份的SQL 语句,SAP HANA返回了447的错误码,告知云备份客户端此命令执行失败。实际上,此命令触发的备份任务可能会在SAP HANA后台正常执行。更多信息,请参见SAP HANA官方描述

  • 解决方法

    如果仅是偶发情况,并且在备份任务页面确认备份已成功执行,可以忽略此告警。但若此类问题频繁出现,建议在确保业务不受影响的前提下,选择业务低峰期重启HANA实例以解决问题。

为什么收到告警的时间和实际错误发生时间不一致?

短信告警设置了夜间抑制功能,将晚上8点至次日早上8点期间触发的告警延迟至早上8点之后发送;而邮件告警则不受此限制,会即时发送。

为什么在备份SAP HANA后,存储库管理中显示的源端数据量会异常增大?

  • 问题原因

    对于存储库中备份的SAP HANA数据,我们将定期查询HANA数据库中所有通过backint进行的历史备份记录,这包括由其他备份软件执行且未被删除的HANA备份。需要注意的是,这些历史备份数据量的统计不会影响费用计算,实际计费依据的是存储库内实际占用的数据总量。

  • 解决方法

    您可以在HANA数据库中执行SQL语句来删除所有由非云备份方式创建且不再需要的备份记录。请在执行删除操作前,确保这些记录已经无需保留。

在创建SAP HANA恢复任务时,如果在目标实例中选择数据库时发现有重复的数据库名称,这通常表示什么?

在创建SAP HANA恢复任务时,如果在选择数据库环节,遇到多个具有相同名称不同服务的数据库,可以任选其中一个进行恢复操作。

相关文档