

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

# Amazon EC2 上的 SAP HANA 备份
<a name="backup-saphana"></a>

**注意**  
[支持的服务由 AWS 区域](backup-feature-availability.md#supported-services-by-region)包含目前支持 Amazon EC2 实例上的 SAP HANA 数据库备份的区域。

AWS Backup 支持在 Amazon EC2 实例上备份和恢复 SAP HANA 数据库。

**Topics**
+ [使用 SAP HANA 数据库概述 AWS Backup](#saphanaoverview)
+ [通过以下方式备份 SAP HANA 数据库的先决条件 AWS Backup](#saphanaprerequisites)
+ [AWS Backup 控制台中的 SAP HANA 备份操作](#saphanabackupconsole)
+ [查看 SAP HANA 数据库备份](#saphanaviewbackup)
+ [用 AWS CLI 于 SAP HANA 数据库 AWS Backup](#saphanaapicli)
+ [对 SAP HANA 数据库备份进行故障排除](#saphanatroubleshooting)
+ [使用时的 SAP HANA 术语表 AWS Backup](#saphanaglossary)
+ [AWS Backup 在 EC2 实例上支持 SAP HANA 数据库发行说明](#saphanareleasenotes)

## 使用 SAP HANA 数据库概述 AWS Backup
<a name="saphanaoverview"></a>

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

AWS Backup 已与 AWS Backint Agent 集成，用于执行 SAP HANA 备份和恢复。有关更多信息，请参阅 [AWS Backint](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-sap-hana.html)。

当您对 SAP HANA 进行备份时，您的快照和按需备份均为完整备份。但是，您可以通过启用连续备份以进行 point-in-time恢复 (PITR) 来实现增量备份。

## 通过以下方式备份 SAP HANA 数据库的先决条件 AWS Backup
<a name="saphanaprerequisites"></a>

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

在 [Amazon EC2 Systems Manager](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html) 完成这些先决条件。

1. [ 为运行 SAP HANA 数据库的 Amazon EC2 实例设置所需的权限](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html#ec2-permissions)

1. [在中注册凭证 AWS Secrets Manager](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html#register-secrets)

1. [安装 AWS Backint 和 AWS Systems Manager 适用于 SAP 代理](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-installing-configuring.html)

1. [ 验证 SSM Agent](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html#verify-ssm-agent)

1. [ 验证参数](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html#verification)

1. [ 注册 SAP HANA 数据库](https://docs.aws.amazon.com/ssm-sap/latest/userguide/get-started.html#register-database)

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

## AWS Backup 控制台中的 SAP HANA 备份操作
<a name="saphanabackupconsole"></a>

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

### 选择保护 SAP HANA 资源
<a name="saphanaenableoptin"></a>

 AWS Backup 要用于保护您的 SAP HANA 数据库，必须将 SAP HANA 作为受保护的资源之一开启。要选择加入，请执行以下操作：

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在左侧导航窗格中，选择**设置**。

1. 在**选择加入服务**下，选择**配置资源**。

1. 选择加入 **Amazon EC2 上的 SAP HANA**。

1. 单击**确认**。

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

### 创建 SAP HANA 数据库的计划备份
<a name="saphanascheduledbackup"></a>

您可以[编辑现有备份计划](https://docs.aws.amazon.com/aws-backup/latest/devguide/updating-a-backup-plan.html)并向其中添加 SAP HANA 资源，也可以仅为 SAP HANA 资源[创建新的备份计划](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup-plan.html)。

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

1. **选项 1：从模板开始**

   1. 选择备份计划模板。

   1. 指定备份计划名称。

   1. 单击**创建计划**。

1. **选项 2：构建新计划**

   1. 指定备份计划名称。

   1. （可选）指定要添加到备份计划的标签。

   1. 指定备份规则配置。

      1. 指定备份规则名称。

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

      1. 指定备份频率。

      1. 指定备份时段。

         *请注意，当前不支持转换到冷存储*。

      1. 指定保留期。

         *当前不支持复制到目的地*

      1. （*可选*）指定要添加到恢复点的标签。

   1. 单击**创建计划**。

1. **选项 3：使用 JSON 定义计划**

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

   1. 指定备份计划名称。

   1. 单击**验证 JSON**。

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

无论使用哪种计划，都要确保[分配资源](https://docs.aws.amazon.com/aws-backup/latest/devguide/assigning-resources.html)。您可以选择要分配的 SAP HANA 数据库，包括系统数据库和租户数据库。您还可以选择排除特定资源 IDs。

### 创建 SAP HANA 数据库的按需备份
<a name="saphanaondemandbackup"></a>

您可以[创建完整的按需备份](https://docs.aws.amazon.com/aws-backup/latest/devguide/recov-point-create-on-demand-backup.html)，该备份在创建后立即运行。请注意，Amazon EC2 实例上的 SAP HANA 数据库的按需备份是完整备份；不支持增量备份。

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

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

### 持续备份 SAP HANA 数据库
<a name="saphanacontinuousbackup"></a>

您可以进行[连续备份](https://docs.aws.amazon.com/aws-backup/latest/devguide/point-in-time-recovery.html)，这可以与 point-in-time恢复 (PITR) 一起使用（请注意，按需备份会将资源保留在拍摄时的状态；而 PITR 使用连续备份来记录一段时间内的变化）。

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

在 AWS Backup 使用 AWS Backup 控制台或 API 创建备份计划时，您可以选择连续备份。

**使用控制台启用连续备份**

1. 登录 AWS 管理控制台，然后在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**备份计划**，然后选择**创建备份计划**。

1. 在**备份计划**下，选择**添加备份计划**。

1. 在**备份规则配置**部分，选择**为支持的资源启用连续备份**。

禁用 SAP HANA 数据库备份的 [PITR（point-in-time恢复）](https://docs.aws.amazon.com/aws-backup/latest/devguide/point-in-time-recovery.html)后，日志将继续发送到中， AWS Backup 直到恢复点到期（状态等于`EXPIRED)`。您可以更改到 SAP HANA 中的替代日志备份位置，以停止向 AWS Backup传输日志。

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

有关在连续备份（恢复点）的还原作业期间可能遇到的问题，请参阅本指南的 [SAP HANA 还原故障排除](https://docs.aws.amazon.com/aws-backup/latest/devguide/saphana-restore.html#saphanarestoretroubleshooting)部分。

## 查看 SAP HANA 数据库备份
<a name="saphanaviewbackup"></a>

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

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**作业**。

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

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

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

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**备份保管库**。

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

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

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**受保护的资源**。

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

## 用 AWS CLI 于 SAP HANA 数据库 AWS Backup
<a name="saphanaapicli"></a>

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

要以编程方式配置 AWS Backup 和管理其资源，请使用 API 调[https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartBackupJob.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartBackupJob.html)用在 EC2 实例上备份 SAP HANA 数据库。

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

## 对 SAP HANA 数据库备份进行故障排除
<a name="saphanatroubleshooting"></a>

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

**Python 先决条件**
+ **错误：自适用于 SAP 的 SSM 以来，Zypper 错误与 Python 版本有关**，需要 AWS Backup Python 3.6 但是 SUSE 12 SP5 默认支持 Python 3.4。

  **解决方案：** SUSE12 SP5通过执行以下步骤在上安装多个版本的 Python：

  1. 运行 update-alternations 命令，在 '/ 3 '中为 Python 3 创建符号链接。usr/local/bin/' instead of directly using '/usr/bin/python此命令会将 Python 3.4 设置为默认版本。命令是：`# sudo update-alternatives —install /usr/local/bin/python3 python3 /usr/bin/python3.4 5`

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

  1. 通过运行以下命令将备用配置更改为 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:
     ```

  1. 输入与 Python 3.6 对应的数字。

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

  1. （*可选，但建议这样做*）验证 Zypper 命令是否按预期运行。

**Amazon EC2 Systems Manager for SAP 发现和注册**
+ **错误：由于禁止访问和 SSM 的公共端点，SAP 版 SSM 无法发现工作负载**。 AWS Secrets Manager 

  **解决方案：**测试是否可以从您的 SAP HANA 数据库访问这些端点。如果无法访问，则可以为 AWS 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 检索密钥”步骤停止。

  1. 通过运行命令 `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 和启用了 Amazon VPC DNSHostname。
    + 确保您的 VPC 端点已启用“允许私有 DNS 名称”。
    + 如果 SSM for SAP 发现成功完成，则日志将显示已发现主机。
+ **错误： AWS Backup 由于访问 AWS 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`。此外， AWS Backup 控制台还可以显示 `Fatal Error: An internal error occured.`

  **解决方案：**打开防火墙端口以允许访问公有服务端点（HTTPS）。使用此选项后，DNS 将通过公有 IP 地址解析对 AWS 服务的请求。
+ **错误：由于 HANA 密码包含特殊字符，SSM for SAP 注册失败。**示例错误可能包括使用 `hdbsql` 对 `systemdb` 和 `tenantdb` 测试连接之后的 `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 实例进行测试）。

  在 AWS Backup控制台的 “作业” 页面中，备份任务详细信息可以显示错误`FAILED`的状态`Miscellaneous: b’* 10: authentication failed SQLSTATE: 28000\n’`。

  **解决方案：**确保您的密码不含特殊字符，例如 \$1。
+ **错误：`b’* 447: backup could not be completed: [110507] Backint exited with exit code 1 instead of 0. console output: time...`**

  **解决方案：**适用于 SAP HANA 的 AWS BackInt 代理安装可能未成功完成。请重试在 SAP 应用程序服务器上部署 [AWS Backint Agent](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-sap-hana.html) 和 [Amazon EC2 Systems Manager Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) 的过程。
+ **错误：注册后，控制台与日志文件不匹配。**

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

  **确认注册状态：**

  1. 登录 [SSM 控制台](https://console.aws.amazon.com//systems-manager)

  1. 从左侧导航窗格中选择**运行命令**。

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

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

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

  **解决方案：**确保您的 HANA 密码不含特殊字符（例如“\$1”）。

**创建 SAP HANA 数据库的备份**
+ **错误：创建 AWS Backup SystemDB 或 TenantDB 的按需备份时，控制台会显示 “致命错误” 消息。**之所以发生这种情况，是因为无法访问公有端点。这是由阻止访问此端点的客户端防火墙造成的。

  `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，确保日志备份是 AWS Backup 从 SAP HANA 发送到的。
+ **错误**：`One or more log backup attempts failed for recovery point.`

  **解决方案：**有关详细信息，请检查 SAP HANA。确保 AWS Backup 从 SAP HANA 向发送日志备份。
+ **错误**：`Unable to determine the status of log backups for recovery point.`

  **解决方案：**有关详细信息，请检查 SAP HANA。确保 AWS Backup 从 SAP HANA 向发送日志备份。
+ **错误：**`Log backups for recovery point %s were interrupted due to a restore operation on the database.`

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

## 使用时的 SAP HANA 术语表 AWS Backup
<a name="saphanaglossary"></a>

**数据备份类型：**SAP HANA 支持两种类型的数据备份：完整备份和 INC（增量）备份。 AWS Backup 优化了每次备份操作期间使用的类型。

**目录备份：**SAP HANA 维护自己的名为*目录*的清单。 AWS Backup 与这个目录互动。每个新备份都会在该目录中创建一个条目。

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

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

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

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

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

## AWS Backup 在 EC2 实例上支持 SAP HANA 数据库发行说明
<a name="saphanareleasenotes"></a>

当前不支持某些功能：
+ 连续备份（使用事务日志）无法复制到其他区域或账户。可以将快照备份从完整备份复制到支持的区域和账户。
+ 当前不支持 Backup Audit Manager 和报告。
+ [支持的服务由 AWS 区域](backup-feature-availability.md#supported-services-by-region) 包含目前支持 Amazon EC2 实例上的 SAP HANA 数据库备份的区域。