还原 Amazon EC2 实例上的 SAP HANA 数据库 - AWS Backup

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

还原 Amazon EC2 实例上的 SAP HANA 数据库

可以使用 AWS Backup 控制台、API 或使用恢复 EC2 实例上的 SAP HANA 数据库 AWS CLI。

使用 AWS Backup 控制台恢复 Amazon EC2 实例数据库上的 SAP HANA

请注意,涉及同一数据库的备份作业和还原作业不能同时进行。在执行 SAP HANA 数据库还原作业时,尝试备份同一数据库可能会导致错误:“数据库在停止时无法备份”。

  1. 使用先决条件中的凭证访问 AWS Backup 控制台。

  2. 目标还原位置下拉菜单下,选择要使用您要用于还原的恢复点覆盖的数据库(请注意,托管还原目标数据库的实例也必须具有先决条件中的权限)。

    重要

    SAP HANA 数据库还原具有破坏性。还原数据库将覆盖位于指定目标还原位置的数据库。

  3. 只有在执行系统副本还原时才完成此步骤;否则,请跳至步骤 4。

    系统副本还原是一种还原作业,它还原到目标数据库与生成恢复点的源数据库不同。对于系统副本还原,请注意控制台上为您提供的 aws ssm-sap put-resource-permission 命令。必须在满足先决条件的计算机上复制、粘贴和执行此命令。运行此命令时,请使用设置注册应用程序所需权限的先决条件中的角色中的凭证。

    // Example command aws ssm-sap put-resource-permission \ --region us-east-1 \ --action-type RESTORE \ --source-resource-arn arn:aws:ssm-sap-east-1:112233445566:HANA/Foo/DB/HDB \ --resource-arn arn:aws:ssm-sap:us-east-1:112233445566:HANA/Bar/DB/HDB
  4. 选择还原位置后,可以看到目标数据库的资源 ID应用程序名称数据库类型EC2 实例

  5. 或者,可以打开高级还原设置以更改目录还原选项。默认选择是从 AWS Backup中还原最新的目录。

  6. 单击还原备份

  7. 由于将在还原期间覆盖目标位置(破坏性还原),因此您必须在接下来的弹出对话框中确认允许这样做。

    1. 要继续,您必须明白,现有数据库将被您要还原的数据库所覆盖。

    2. 明白这一点后,您必须确认现有数据将被覆盖。要确认这一点并继续,请在文本输入字段中键入 overwrite

  8. 单击还原备份

如果该过程操作成功,控制台顶部将显示一条蓝色横幅。这表示还原作业正在进行中。您将被自动重定向到“作业”页面,您的还原作业将出现在还原作业列表中。这个最新作业的状态将为 Pending。您可以搜索并单击还原作业 ID,以查看每个还原作业的详细信息。您可以通过单击“刷新”按钮来刷新还原作业列表,以查看还原作业状态的更改。

StartRestoreJob EC2 上适用于 SAP HANA 的 AP@@ I

此操作将恢复由一个 Amazon 资源名称 (ARN) 标识的已保存资源。

请求语法

PUT /restore-jobs HTTP/1.1 Content-type: application/json { "IdempotencyToken": "string", "Metadata": { "string" : "string" }, "RecoveryPointArn": "string", "ResourceType": "string" }

URI 请求参数:该请求不使用任何 URI 参数。

请求体:请求接受采用 JSON 格式的以下数据:

IdempotencyToken客户选择的字符串,可用于区分原本相同的调用。StartRestoreJob使用相同的幂等性令牌重试成功的请求会生成一条成功消息,而不执行任何操作。

类型:字符串

必需:否

元数据

一组元数据键值对。包含还原恢复点所需的信息,例如资源名称。您可以通过调用 GetRecoveryPointRestoreMetadata 来获取在备份资源时有关该资源的配置元数据。但是,除了 GetRecoveryPointRestoreMetadata 提供的值之外,可能还需要其他值才能还原资源。例如,如果原始资源名称已存在,您可能需要提供一个新的资源名称。

您需要包含特定元数据才能还原 Amazon EC2 实例上的 SAP HANA。请参阅 SAP HANA 特定项目的 StartRestoreJob 元数据

要检索相关元数据,您可以使用调用 GetRecoveryPointRestoreMetadata

标准 SAP HANA 数据库恢复点示例:

"RestoreMetadata": { "BackupSize": "1660948480", "DatabaseName": "DATABASENAME", "DatabaseType": "SYSTEM", "HanaBackupEndTime": "1674838362", "HanaBackupId": "1234567890123", "HanaBackupPrefix": "1234567890123_SYSTEMDB_FULL", "HanaBackupStartTime": "1674838349", "HanaVersion": "2.00.040.00.1553674765", "IsCompressedBySap": "FALSE", "IsEncryptedBySap": "FALSE", "SourceDatabaseArn": "arn:aws:ssm-sap:region:accountID:HANA/applicationID/DB/DATABASENAME", "SystemDatabaseSid": "HDB", "aws:backup:request-id": "46bbtt4q-7unr-2897-m486-yn378k2mrw9c" }

连续 SAP HANA 数据库恢复点示例:

"RestoreMetadata": { "AvailableRestoreBases": "[1234567890123,9876543210987,1472583691472,7418529637418,1678942598761]", "BackupSize": "1711284224", "DatabaseName": "DATABASENAME", "DatabaseType": "TENANT", "EarliestRestorablePitrTimestamp": "1674764799789", "HanaBackupEndTime": "1668032687", "HanaBackupId": "1234567890123", "HanaBackupPrefix": "1234567890123_HDB_FULL", "HanaBackupStartTime": "1668032667", "HanaVersion": "2.00.040.00.1553674765", "IsCompressedBySap": "FALSE", "IsEncryptedBySap": "FALSE", "LatestRestorablePitrTimestamp": "1674850299789", "SourceDatabaseArn": "arn:aws:ssm-sap:region:accountID:HANA/applicationID/DB/SystemDatabaseSid", "SystemDatabaseSid": "HDB", "aws:backup:request-id": "46bbtt4q-7unr-2897-m486-yn378k2mrw9d" }

适用于 EC2 上 SAP HANA 的 CLI

start-restore-job 命令将恢复由一个 Amazon 资源名称 (ARN) 标识的已保存资源。CLI 将遵循上面的 API 准则。

摘要:

start-restore-job --recovery-point-arn value --metadata value --aws:backup:request-id value [--idempotency-token value] [--resource-type value] [--cli-input-json value] [--generate-cli-skeleton value] [--debug] [--endpoint-url value] [--no-verify-ssl] [--no-paginate] [--output value] [--query value] [--profile value] [--region value] [--version value] [--color value] [--no-sign-request] [--ca-bundle value] [--cli-read-timeout value] [--cli-connect-timeout value]

Options

--recovery-point-arn(字符串)是 Amazon 资源编号 (ARN) 形式的字符串,用于唯一地标识恢复点;例如 arn:aws:backup:region:123456789012:recovery-point:46bbtt4q-7unr-2897-m486-yn378k2mrw9d

--metadata(映射):一组元数据键值对。包含还原恢复点所需的信息,例如资源名称。您可以通过调用 GetRecoveryPointRestoreMetadata 来获取在备份资源时有关该资源的配置元数据。但是,除了 GetRecoveryPointRestoreMetadata 提供的值之外,可能还需要其他值才能还原资源。您需要指定特定元数据才能还原 Amazon EC2 实例上的 SAP HANA:

  • aws:backup:request-id: 这是用于幂等性的任何 UUID 字符串。它不会以任何方式改变您的还原体验。

  • aws:backup:TargetDatabaseArn:指定要还原到的数据库。这是 Amazon EC2 上的 SAP HANA 数据库 ARN。

  • CatalogRestoreOption:指定从何处还原目录。选择 NO_CATALOGLATEST_CATALOG_FROM_AWS_BACKUPCATALOG_FROM_LOCAL_PATH 之一:

  • LocalCatalogPath:如果 CatalogRestoreOption 元数据值为CATALOG_FROM_LOCAL_PATH,则在您的 EC2 实例上指定本地目录的路径。它应该是您的 EC2 实例中的有效文件路径。

  • RecoveryType:当前支持 FULL_DATA_BACKUP_RECOVERYPOINT_IN_TIME_RECOVERYMOST_RECENT_TIME_RECOVERY 恢复类型。

键 =(字符串);值 =(字符串)。速记语法:

KeyName1=string,KeyName2=string

JSON 语法:

{"string": "string" ...}

--idempotency-token 是客户选择的字符串,可用于区分对 StartRestoreJob 的其他相同调用。使用相同的幂等性令牌重试成功的请求会生成一条成功消息,而不执行任何操作。

--resource-type 是一个字符串,它启动用于还原以下资源之一的恢复点的作业:SAP HANA on Amazon EC2(适用于 SAP HANA on Amazon EC2)。或者,可以使用命令 aws ssm-sap tag-resource 标记 SAP HANA 资源。

输出RestoreJobId 是一个字符串,用于唯一地标识还原恢复点的作业。

故障排除

如果在尝试备份操作时出现以下任何错误,请参阅相关的解决方案。

  • 错误:连续备份日志错误

    为了维护连续备份的恢复点,SAP HANA 会为所有更改创建日志。当日志不可用时,每个连续恢复点的状态都将变为 STOPPED。最后一个可用于还原的可行恢复点的状态为 AVAILABLE。如果在状态为 STOPPED 的恢复点和状态为 AVAILABLE 的恢复点之间的时间内出现日志数据丢失,则无法保证这些时间能够成功还原。如果您输入的日期和时间在此范围内, AWS Backup 将尝试备份,但会使用最接近的可恢复时间。出现此错误时,将显示消息 “Encountered an issue with log backups. Please check SAP HANA for details."

    解决方案:在控制台中,将基于日志显示最近可还原时间。您可以输入比显示的时间更近的时间。但是,如果日志中没有该时间的数据,则 AWS Backup 将使用最新的可恢复时间。

  • 错误Internal error

    解决方案:通过控制台创建支持案例,或联系 AWS Support 并提供还原任务编号等还原详情。

  • 错误:The provided role arn:aws:iam::ACCOUNT_ID:role/ServiceLinkedRole cannot be assumed by AWS Backup

    解决方案:确保调用还原时担任的角色具有创建服务相关角色所需的权限。

  • 错误:User: arn:aws:sts::ACCOUNT_ID:assumed-role/ServiceLinkedRole/AWSBackup-ServiceLinkedRole is not authorized to perform: ssm-sap:GetOperation on resource: arn:aws:ssm-sap:us-east-1:ACCOUNT_ID:...

    解决方案:确保正确输入了调用先决条件中概述的还原权限时所担任的角色。

  • 错误:b* 449: recovery strategy could not be determined: [111014] The backup with backup id '1660627536506' cannot be used for recovery SQLSTATE: HY000\n

    解决方案:确保正确安装了 Backint Agent。检查所有先决条件,尤其是在 SAP 应用程序服务器上安装 AWS BackInt 代理和适用 AWS Systems Manager 于 SAP 的必备条件,然后再次尝试安装 BackInt 代理。

  • 错误:IllegalArgumentException: Restore job provided is not ready to return chunks, current restore job status is: CANCELLED

    解决方案:服务工作流程已取消还原作业。重试还原作业。

  • 错误:RequestError: send request failed\ncaused by: read tcp 10.0.131.4:40482->35.84.99.47:443: read: connection timed out"

    解决方案:实例上出现暂时性网络不稳定。请重试还原。如果此问题持续发生,请尝试将 ForceRetry: "true" 添加到 /hana/shared/aws-backint-agent/aws-backint-agent-config.yaml. 处的代理配置文件

有关任何其他与 AWS Backint 代理相关的问题,请参阅针对 SAP HANA 的 AWS Backint 代理进行故障排除