Amazon EC2 上的 SAP HANA 备份 - Amazon Backup
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon EC2 上的 SAP HANA 备份

注意

Amazon Web Services 区域支持的服务包含目前支持 Amazon EC2 实例上的 SAP HANA 数据库备份的区域。

Amazon Backup 支持备份和还原 Amazon EC2 实例上的 SAP HANA 数据库。

具有 Amazon Backup 的 SAP HANA 数据库概述

除了能够创建备份和还原数据库外,Amazon Backup 与 Amazon EC2 Systems Manager for SAP 集成还可帮助客户识别和标记 SAP HANA 数据库。

Amazon Backup 与 Amazon Backint Agent 集成后可执行 SAP HANA 备份和还原。有关更多信息,请参阅 Amazon Backint

通过 Amazon Backup 备份 SAP HANA 数据库的先决条件

在执行备份和还原活动之前,必须满足以下几个先决条件。请注意,您需要对 SAP HANA 数据库具有管理访问权限,并且需要在 Amazon 账户中具有创建新 IAM 角色和策略的权限才能执行这些步骤。

Amazon EC2 Systems Manager 完成这些先决条件。

最佳做法是每个 HANA 实例只注册一次。多次注册可能导致同一个数据库有多个 ARN。保持单个 ARN 和注册可以简化备份计划的创建与维护,还有助于减少计划外的重复备份。

Amazon Backup 控制台中的 SAP HANA 备份操作

设置这些先决条件和 SSM for SAP,即可备份和还原 EC2 上的 SAP HANA 数据库。

选择保护 SAP HANA 资源

要使用 Amazon Backup 保护 SAP HANA 数据库,必须将 SAP HANA 作为受保护的资源之一开启。要选择加入,请执行以下操作:

  1. 打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup

  2. 在左侧导航窗格中,选择设置

  3. 选择加入服务下,选择配置资源

  4. 选择加入 Amazon EC2 上的 SAP HANA

  5. 单击确认

现在,将启用 Amazon EC2 上 SAP HANA 的选择加入服务。

创建 SAP HANA 数据库的计划备份

您可以编辑现有备份计划并向其中添加 SAP HANA 资源,也可以仅为 SAP HANA 资源创建新的备份计划

如果您选择创建新的备份计划,则有三个选项:

  1. 选项 1:从模板开始

    1. 选择备份计划模板。

    2. 指定备份计划名称。

    3. 单击创建计划

  2. 选项 2:构建新计划

    1. 指定备份计划名称。

    2. (可选)指定要添加到备份计划的标签。

    3. 指定备份规则配置。

      1. 指定备份规则名称。

      2. 选择现有的保管库或创建新的备份保管库。这是存储备份的位置。

      3. 指定备份频率。

      4. 指定备份时段。

        请注意,当前不支持转换到冷存储

      5. 指定保留期。

        当前不支持复制到目的地

      6. 可选)指定要添加到恢复点的标签。

    4. 单击创建计划

  3. 选项 3:使用 JSON 定义计划

    1. 通过修改现有备份计划的 JSON 表达式或创建新表达式,为您的备份计划指定 JSON。

    2. 指定备份计划名称。

    3. 单击验证 JSON

    成功创建备份计划后,可以在下一步中为备份计划分配资源。

无论使用哪种计划,都要确保分配资源。您可以选择要分配的 SAP HANA 数据库,包括系统数据库和租户数据库。还可以选择排除特定资源 ID。

创建 SAP HANA 数据库的按需备份

您可以创建完整的按需备份,该备份在创建后立即运行。请注意,Amazon EC2 实例上的 SAP HANA 数据库的按需备份是完整备份;不支持增量备份。

现在已创建按需备份。它将开始备份您的指定资源。控制台会将您转到备份作业页面,您可以在其中查看作业进度。请记下屏幕顶部蓝色横幅中的备份作业 ID,因为您需要它才能轻松找到备份作业的状态。备份完成后,状态将变为 Completed。备份可能需要几小时的时间。

刷新备份作业列表可查看状态变化。您也可以搜索并单击备份作业 ID 以查看详细作业状态。

持续备份 SAP HANA 数据库

您可以进行连续备份,它可以与时间点还原 (PITR) 一起使用(请注意,按需备份以创建备份时所处的状态保存资源;而 PITR 使用的是连续备份,它记录一段时间内的变化)。

使用连续备份,可以还原 EC2 实例上的 SAP HANA 数据库,方法是将其倒回您选择的特定时间,精确到 1 秒(最多回溯 35 天)。连续备份的工作原理是,首先创建资源的完整备份,然后不断备份资源的事务日志。PITR 还原的工作原理是,访问您的完整备份,然后将事务日志重放到您要求 Amazon Backup 恢复的时间。

在 Amazon Backup 中使用 Amazon Backup 控制台或 API 创建备份计划时,您可以选择进行连续备份。

使用控制台启用连续备份
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Backup 控制台:https://console.aws.amazon.com/backup

  2. 在导航窗格中,选择备份计划,然后选择创建备份计划

  3. 备份计划下,选择添加备份计划

  4. 备份规则配置部分,选择为支持的资源启用连续备份

对 SAP HANA 数据库备份禁用 PITR(时间点还原)后,会将日志继续发送到 Amazon Backup 中,直到恢复点到期(状态等于 EXPIRED))。您可以更改到 SAP HANA 中的替代日志备份位置,以停止向 Amazon Backup 传输日志。

状态为 STOPPED 的连续恢复点表示连续恢复点已中断;也就是说,从 SAP HANA 传输到 Amazon Backup 的显示数据库增量更改的日志有间隙。在此时间范围间隙内出现的恢复点状态为 STOPPED.

有关在连续备份(恢复点)的还原作业期间可能遇到的问题,请参阅本指南的 SAP HANA 还原故障排除部分。

查看 SAP HANA 数据库备份

查看备份和还原作业的状态:

  1. 打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup

  2. 在导航窗格中,选择作业

  3. 选择备份作业、还原作业或复制作业以查看您的作业列表。

  4. 搜索并单击作业 ID 以查看详细作业状态。

查看保管库中的所有恢复点:

  1. 打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup

  2. 在导航窗格中,选择备份保管库

  3. 搜索并单击备份保管库以查看该保管库中的所有恢复点。

查看受保护资源的详细信息:

  1. 打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup

  2. 在导航窗格中,选择受保护的资源

  3. 您也可以按资源类型进行筛选,以查看该资源类型的所有备份。

对具有 Amazon Backup 的 SAP HANA 数据库使用 Amazon CLI

备份控制台中的每个操作都有相应的 API 调用。

要以编程方式配置和管理 Amazon Backup 及其资源,请使用 API 调用 StartBackupJob 备份 EC2 实例上的 SAP HANA 数据库。

使用 start-backup-job 作为 CLI 命令。

对 SAP HANA 数据库备份进行故障排除

如果工作流中出现错误,请查阅以下错误和建议解决方案的示例:

Python 先决条件

  • 错误:与 Python 版本相关的 Zypper 错误,因为 SSM for SAP 和 Amazon Backup 需要 Python 3.6,但 SUSE 12 SP5 默认支持 Python 3.4。

    解决方案:通过执行以下步骤,在 SUSE 12 SP5 上安装多个版本的 Python:

    1. 运行 update-alternatives 命令以在“/usr/local/bin/”中为 Python 3 创建符号链接,而不是直接使用“/usr/bin/python3”。此命令会将 Python 3.4 设置为默认版本。命令是:# sudo update-alternatives —install /usr/local/bin/python3 python3 /usr/bin/python3.4 5

    2. 通过运行以下命令将 Python 3.6 添加到备用配置中:# sudo update-alternatives —install /usr/local/bin/python3 python3 /usr/bin/python3.6 2

    3. 通过运行以下命令将备用配置更改为 Python 3.6:# sudo update-alternatives —config python3

      应显示以下输出:

      There are 2 choices for the alternative python3 (providing /usr/local/bin/python3). Selection Path Priority Status * 0 /usr/bin/python3.4 5 auto mode 1 /usr/bin/python3.4 5 manual mode 2 /usr/bin/python3.6 2 manual mode Press enter to keep the current choice[*], or type selection number:
    4. 输入与 Python 3.6 对应的数字。

    5. 检查 Python 版本并确认正在使用 Python 3.6。

    6. 可选,但建议这样做)验证 Zypper 命令是否按预期运行。

Amazon EC2 Systems Manager for SAP 发现和注册

  • 错误:SSM for SAP 未能发现工作负载,因为对 Amazon Secrets Manager 和 SSM 的公有端点的访问受阻。

    解决方案:测试是否可以从您的 SAP HANA 数据库访问这些端点。如果无法访问,则可以为 Amazon Secrets Manager 和 SSM for SAP 创建 Amazon VPC 端点。

    1. 运行以下命令,测试能否从适用于 HANA 数据库的 Amazon EC2 主机访问 Secrets Manager:aws secretsmanager get-secret-value —secret-id hanaeccsbx_hbx_database_awsbkp。如果该命令未能返回值,则防火墙正在阻止对 Secrets Manager 服务端点的访问。日志将在“从 Secrets Manager 检索密钥”步骤停止。

    2. 通过运行命令 aws ssm-sap list-registration,测试与 SSM for SAP 端点的连接。如果该命令未能返回值,则防火墙正在阻止对 SSM for SAP 端点的访问。

      错误示例:Connection was closed before we received a valid response from endpoint URL: “https://ssm-sap.us-west-2.amazonaws.com/register-application"

    如果无法访问端点,则有两个选项可供选择。

    • 打开防火墙端口以允许访问 Secrets Manager 和 SSM for SAP 的公有服务端点;或者,

    • 为 Secrets Manager 和 SSM for SAP 创建 VPC 端点,然后:

      • 确保已为 DNSSupport 和 DNSHostname 启用 Amazon VPC。

      • 确保您的 VPC 端点已启用“允许私有 DNS 名称”。

      • 如果 SSM for SAP 发现成功完成,则日志将显示已发现主机。

  • 错误:由于对 Amazon Backup 服务公有端点的访问受阻,Amazon Backup 和 Backint 连接失败。aws-backint-agent.log 可以显示类似于以下内容的错误:time="2024-01-03T11:39:15-08:00" level=error msg="Storage configuration validation failed: missing backup data plane Id"level=fatal msg="Error performing backup missing backup data plane Id。此外,Amazon Backup 控制台还可以显示 Fatal Error: An internal error occured.

    解决方案:如果无法访问端点,则有两个选项可供选择:

    • 打开防火墙端口以允许访问公有服务端点(HTTPS)。使用此选项后,DNS 将通过公有 IP 地址解析对 Amazon 服务的请求。

    • 创建 VPC 端点,以私密方式路由 Amazon Backup 所需的往返 Amazon 服务的流量。使用此选项后,DNS 将通过私有 IP 地址解析对这些服务的请求。此选项可能需要更新 DNS 服务器,以添加将请求转发到私有端点的规则。

  • 错误:由于 HANA 密码包含特殊字符,SSM for SAP 注册失败。示例错误可能包括使用 hdbsqlsystemdbtenantdb 测试连接之后的 Error connecting to database HBX/HBX when validating its credentials.Discovery failed because credentials for HBX/SYSTEMDB either not provided or cannot be validated.(从 HANA 数据库 Amazon EC2 实例进行测试)。

    在 Amazon Backup 控制台的“作业”页面中,备份作业详细信息可能会显示 FAILED 状态,错误为 Miscellaneous: b’* 10: authentication failed SQLSTATE: 28000\n’

    解决方案:确保您的密码不含特殊字符,例如 $。

  • 错误:b’* 447: backup could not be completed: [110507] Backint exited with exit code 1 instead of 0. console output: time...

    解决方案:Amazon BackInt Agent for SAP HANA 安装可能未成功完成。请重试在 SAP 应用程序服务器上部署 Amazon Backint AgentAmazon EC2 Systems Manager Agent 的过程。

  • 错误:注册后,控制台与日志文件不匹配。

    发现日志显示,由于密码包含特殊字符,在尝试连接到 HANA 数据库时注册失败。尽管 SSM for SAP 的 Application Manager for SAP 控制台显示注册成功,但它无法确认注册成功。如果控制台显示注册成功,但日志未显示成功,则备份将失败。

    确认注册状态:

    1. 登录 SSM 控制台

    2. 从左侧导航窗格中选择运行命令

    3. 在文本字段命令历史记录下输入 Instance ID:Equal:,其值等于您用于注册的实例。这将筛选命令历史记录。

    4. 使用命令 ID 列查找状态为 Failed 的命令。然后,找到 AWSSystemsManagerSAP-Discovery 文档名称。

    5. 在 Amazon CLI 中,运行 aws ssm-sap register-application status 命令。如果返回的值显示为 Error,则表示注册失败。

    解决方案:确保您的 HANA 密码不含特殊字符(例如“$”)。

创建 SAP HANA 数据库的备份

  • 错误:创建 SystemDB 或 TenantDB 的按需备份时,Amazon Backup 控制台显示“致命错误”消息。之所以发生这种情况,是因为无法访问公有端点。这是由阻止访问此端点的客户端防火墙造成的。

    aws-backint-agent.log 可能会显示 level=error msg="Storage configuration validation failed: missing backup data plane Id"level=fatal msg="Error performing backup missing backup data plane Id." 之类的错误

    解决方案:打开对公有端点的防火墙访问权限。

  • 错误:Database cannot be backed up while it is stopped

    解决方案:确保要备份的数据库处于活动状态。只有在数据库处于在线状态时,才能备份数据库数据和日志。

  • 错误Getting backup metadata failed. Check the SSM document execution for more details.

    解决方案:确保要备份的数据库处于活动状态。只有在数据库处于在线状态时,才能备份数据库数据和日志。

监控备份日志

  • 错误Encountered an issue with log backups, please check SAP HANA for details.

    解决方案:检查 SAP HANA,确保日志备份是从 SAP HANA 发送到 Amazon Backup。

  • 错误One or more log backup attempts failed for recovery point.

    解决方案:有关详细信息,请检查 SAP HANA。确保日志备份从 SAP HANA 发送到 Amazon Backup。

  • 错误Unable to determine the status of log backups for recovery point.

    解决方案:有关详细信息,请检查 SAP HANA。确保日志备份从 SAP HANA 发送到 Amazon Backup。

  • 错误:Log backups for recovery point %s were interrupted due to a restore operation on the database.

    解决方案:等待还原任务完成。日志备份应该会恢复。

使用 Amazon Backup 时的 SAP HANA 术语表

数据备份类型:SAP HANA 支持两种类型的数据备份:完整备份和 INC(增量)备份。Amazon Backup 优化了每次备份操作期间使用的类型。

目录备份:SAP HANA 维护自己的名为目录的清单。Amazon Backup 与此目录交互。每个新备份都会在该目录中创建一个条目。

连续日志备份(事务日志):对于时间点故障恢复 (PITR) 功能,SAP HANA 会跟踪自最近一次备份以来的所有事务。

系统复制:一种还原作业,其中的还原目标数据库与创建恢复点的源数据库不同。

破坏性还原:破坏性还原是一种还原作业,在此期间,还原的数据库会删除或覆盖源数据库或现有数据库。

FULL:完整备份是指备份整个数据库。

INC:增量备份是指备份自上次备份以来对 SAP HANA 数据库进行的所有更改。

有关其他详细信息,请参阅 Amazon 术语表

Amazon Backup 支持 EC2 实例上的 SAP HANA 数据库发布说明

当前不支持某些功能:

  • 连续备份(使用事务日志)无法复制到其他区域或账户。可以将快照备份从完整备份复制到支持的区域和账户。

  • 当前不支持 Backup Audit Manager 和报告。

  • Amazon Web Services 区域支持的服务 包含目前支持 Amazon EC2 实例上的 SAP HANA 数据库备份的区域。