故障排除Amazon适用于 SAP HANA 的 Backint Agent - AWS 上的 SAP HANA
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除Amazon适用于 SAP HANA 的 Backint Agent

以下文档可帮助您排查可能存在的问题。Amazon适用于 SAP HANA 安装或备份的 Backint Agent。

Agent 日志

要找到日志来帮助您排查错误和故障,请检查以下位置。

Agent 日志

{INSTALLATION DIRECTORY}/aws-backint-agent/aws-backint-agent.log

系统数据库备份/恢复日志

/usr/sap/<SID>/HDB<Instance No>/<hostname>/trace/backup.log /usr/sap/<SID>/HDB<Instance No>/<hostname>/trace/backint.log

租户数据库备份/恢复日志

/usr/sap/<SID>/HDB<Instance No>/<hostname>/trace/DB_<TENANT>/backup.log /usr/sap/<SID>/HDB<Instance No>/<hostname>/trace/DB_<TENANT>/backint.log

Installation

问题:安装时返回错误AmazonBackint 代理。

返回错误:

SyntaxError: Non-UTF-8 code starting with '\xf3' in file install-aws-backint-agent on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
  • 根本原因:用户环境中只安装了 Python 版本 3。

  • 解决方法:运行以下命令安装 Python 版本 2 并创建指向usr/bin/python

    yum install -y python2
    ln -s /usr/bin/python2.7 /usr/bin/python

问题:无法使用 SSM 文档查看为安装列出的实例。

  • 根本原因

    1. 实例上未安装 SSM 代理。

    2. 如果安装了 SSM 代理,则实例未运行或实例上的 SSM 代理未运行。

    3. 实例上安装的 SSM 代理的版本早于 2.3.274.0。

  • 解决方法:按中列出的步骤操作。练习在实例上安装或更新 SSM 代理。您可以使用以下命令验证 SSM 代理是否正在运行。

    sudo systemctl status amazon-ssm-agent

问题:当您使用 SSM 安装文档时,将返回以下错误。

failed to download manifest - failed to retrieve package document description: InvalidDocument: Document with name AWSBackintAgent with version x does not exist.

  • 根本原因:不受支持的版本Amazon已输入倒入代理。

  • 解决方法:要查看受支持的AmazonBackint 代理,请参阅以下位置列出的版本。

    s3://awssap-backint-agent-cn-north-1/binary/agent-version

备份和恢复

问题:AccessDenied 出现在代理日志中。

  • 根本原因

    1. EC2 实例的 IAM 角色没有访问 S3 存储桶的适当权限。

    2. 代理配置文件没有将 S3BucketOwnerAccountID 包括在双引号内。这些区域有:S3BucketOwnerAccountID是 12 位Amazon账户 ID。

    3. S3 存储桶不归 S3BucketOwnerAccountID 提供的账户所有。

    4. S3BucketOwnerAccountID 提供的 S3 存储桶在 2019 年 5 月之前创建。

  • 解决方法:验证先决条件步骤用于安装AmazonBackint 代理。

问题:由于 S3 连接问题导致 Backup 或恢复失败

  • 根本原因:附加到实例的 IAM 角色没有访问 S3 存储桶的适当权限。

  • 解决方法:验证先决条件步骤用于安装AmazonBackint 代理。

问题:显示代理日志Backint cannot execute hdbbackint或者No such file or directory

  • 根本原因

    1. 如果您是手动安装代理,则为代理可执行文件创建符号链接未成功。

    2. 如果您是使用 SSM 代理,则在创建符号链接时代理的第 2 步失败。您可以通过查看 RunCommand 执行详细信息来验证这一点。

  • 解决方法:验证您是否正确遵循了安装步骤在本文档中。

问题:从 SAP HANA 控制台启动备份时显示以下错误:

Could not start backup for system <SID> DBC: [447]: backup could not be completed: [110091] Invalid path selection for data backup using backint: /usr/sap/<SID>/SYS/global/hdb/backint/COMPLETE_DATA_BACKUP must start with /usr/sap/<SID>/SYS/global/hdb/backint/DB_<TENANT>

  • 根本原因:将 SAP HANA 系统添加到 SAP HANA Studio 时,您选择了单容器模式,而不是多容器模式。

  • 解决方法:将 SAP HANA 系统添加到 SAP HANA Studio,选择多容器模式,然后尝试再次启动备份。有关更多详细信息,请参阅使用 Backint 进行数据备份的路径选择无效

问题:您的备份失败,并在中显示以下错误。aws-backint-agent.log

Error creating uploadId: AuthorizationHeaderMalformed: The authorization header is malformed; the region '<region id>' is wrong; expecting '<region id>'

  • 根本原因:您在 aws-backint-agent-config.yaml 配置文件中为 AwsRegion 参数指定了不正确的区域 ID。

  • 解决方法:指定Amazon您的 Amazon S3 存储桶的区域,然后再次启动备份。您可以从 Amazon S3 控制台找到创建 Amazon S3 存储桶时所在的区域。

问题:任何AmazonBackint 代理操作失败,并在aws-backint-agent.log

“Error creating upload id for bucket:<mys3bucket>"

"NoCredentialProviders: no valid providers in chain.

  • 潜在根本原因:没有 IAM 角色附加到您的 Amazon EC2 实例。

  • 解决方法:AmazonBackint 代理要求您的 EC2 实例附加 IAM 角色才能访问Amazon用于备份和恢复操作的资源。将 IAM 角色附加到您的 EC2 实例,然后再次尝试执行操作。有关更多信息,请参阅 。先决条件用于安装AmazonBackint 代理。

  • 潜在根本原因:对运行代理的 HANA 实例使用代理会导致代理失败。

  • 解决方法:当为运行代理的 HANA 实例使用代理时,请勿使用代理进行实例元数据调用,否则调用将挂起。无法通过代理获取实例元数据信息,因此必须将其排除。更新启动程序脚本,请在{INSTALLATION DIRECTORY}/aws-backint-agent-launcher.sh指定169.254.169.254作为no_proxyHost。

    # cat aws-backint-agent-launcher.sh #!/bin/bash export https_proxy=<PROXY_ADDRESS>:<PROXY_PORT> export HTTP_PROXY=<PROXY_ADDRESS>:<PROXY_PORT> export no_proxy=169.254.169.254 export NO_PROXY=169.254.169.254 /hana/shared/aws-backint-agent/aws-backint-agent "$@"

    有关在 SAP HANA 环境中使用代理地址的详细信息,请参阅使用代理地址Amazon反向代理

问题:当您启动备份或还原时,您会在 SAP HANA Studio 或 SAP HANA Cockpit 中看到以下错误:

backup could not be completed, Backint cannot execute /usr/sap/<SID>/SYS/global/hdb/opt/hdbbackint, Permission denied (13)

  • 根本原因:这些区域有:AmazonBackint 代理二进制或启动程序脚本没有操作系统级别的执行权限。

  • 解决方法:设置执行权限AmazonBackint 代理二进制文件aws-backint-agent和启动器脚本aws-backint-agent-launcher.sh(例如,/hana/shared/aws-backint-agent/)。

问题:我的备份运行太慢,需要更长的时间才能完成。

  • 根本原因:备份和还原的性能取决于许多因素,例如所用 EC2 实例的类型、EBS 卷以及 SAP HANA 通道数。如果数据库大小小于 128 GB,则 SAP HANA 默认为单个通道,或者您的 SAP HANA 参数 parallel_data_backup_backint_channels 设置为 1。

  • 解决方法:数据库备份的速度取决于 SAP HANA 数据卷 (/hana/data) 有多少存储吞吐量可用。尝试将 SAP HANA 数据卷切换为 io1 类型。此外,如果数据库大小大于 128 GB,则可以通过调整并行备份通道数来提高备份性能。增大 parallel_data_backup_backint_channels 的值,然后尝试再次启动备份。我们建议您在尝试调整备份性能时考虑到资源争用与正常系统运行性能。

问题:我的备份失败,并在中出现以下错误之一aws-backint-agent.log

  1. write tcp 10.0.2.83:56192->52.216.88.123:443: use of closed network connection

  2. caused by: read tcp 10.0.2.83:54890->52.216.130.243:443: read: connection reset by peer

  • 根本原因:连接AmazonBackint 代理和 S3 由于吞吐量高而失败。

  • 解决方法:更新Amazon将代理反向到版本 1.02 或更高版本。

备份删除

问题:您已从 SAP HANA 备份控制台(SAP HANA Studio 或 SAP HANA Cockpit)删除了 SAP HANA 备份,但已删除的备份文件仍然显示在 Amazon S3 文件夹中。

  • 根本原因:Amazon由于权限问题,Backint 代理无法从 Amazon S3 存储桶删除关联的备份文件。

  • 解决方法:Amazon反向线代理需要s3:DeleteObject从 SAP HANA 备份控制台删除备份时,从目标 Amazon S3 存储桶删除备份时,将备份文件从目标 Amazon S3 存储桶删除。确保附加到 EC2 实例的 IAM 配置文件具有 s3:DeleteObject 权限。对于已从 SAP HANA 删除的备份,您可以手动从 Amazon S3 存储桶删除关联文件。我们建议您在手动删除任何备份文件之前采取额外的预防措施。手动删除错误的备份文件可能会影响您将来还原 SAP HANA 系统的能力。