在 Amazon EC2 实例上恢复SAPHANA数据库 - AWS Backup

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

在 Amazon EC2 实例上恢复SAPHANA数据库

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

使用 AWS Backup 控制台恢复SAPHANA数据库

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

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

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

    重要

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

  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. 或者,您可以展开 “高级还原设置” 来更改您的目录还原选项。可用选项因所选的还原设置而异。

  6. 单击还原备份

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

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

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

  8. 单击还原备份

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

StartRestoreJob APIfor SAP HANA on EC2

此操作将恢复由 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 SAP HANA 上的EC2实例。参见SAPHANA特定项目的 StartRestoreJob 元数据

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

标准SAPHANA数据库恢复点示例:

"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" }

连续SAPHANA数据库恢复点的示例:

"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" }

CLIfor SAP HANA on EC2

该命令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 SAP HANA 上的EC2实例:

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

  • aws:backup:TargetDatabaseArn:指定要还原到的数据库。这是 Amazon SAP HANA 上的EC2数据库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 EC2for on Amaz SAP HANA on EC2。或者,也可以使用命令对SAPHANA资源进行标记 aws ssm-sap tag-resource

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

SAPHANA高可用性 (HA) 恢复

恢复的高可用性 (HA) 系统时,还需要考虑一些重要的注意事项和其他步骤SAPHANA。展开下面最符合您的用例的部分。

恢复场景:

在恢复到目标(目标)SAPHANAHA 系统之前,

  1. 如果已安装群集,请将所有集群注释置于维护模式。

  2. 在所有节点(包括主节点和辅助节点)上停止SAPHANA数据库。

  3. (推荐)禁用所有备份计划,以确保它们不会干扰恢复操作。

恢复任务完成后,转到已恢复的 SAP HANA HA 系统,然后:

  1. 在主模式下启动SAPHANA数据库。

  2. 手动启动任何已恢复系统数据库但其租户未还原的租户数据库。

  3. 在主节点和辅助节点之间重新建立SAPHANA系统复制 (HSR)。

  4. 在辅助节点上启动SAPHANA数据库。

  5. 如果安装了群集,请确保所有群集节点都处于联机状态。

  6. 启用您在恢复操作之前禁用的任何备份计划。

(可选)您可以SAP通过调用在 Sy AWS stems Manager 上使应用程序保持同步 StartApplicationRefresh,也可以等待预定的应用程序刷新以获取最新SAP元数据。

在开始恢复作业之前,请转到目标单节点SAPHANA系统,然后:

  1. 停止目标SAPHANA系统上的SAPHANA数据库。

  2. (推荐)禁用所有备份计划,以确保它们不会干扰恢复操作。

恢复任务完成后,转到目标单节点SAPHANA系统,然后:

  1. 在目标SAPHANA系统SAPHANA上启动。

  2. 在目标节点上手动启动每个租户数据库。

  3. 启用您在恢复操作之前禁用的任何备份计划。

(可选)您可以SAP通过调用在 Sy AWS stems Manager 上使应用程序保持同步 StartApplicationRefresh,也可以等待预定的应用程序刷新以获取最新SAP元数据。

在开始恢复作业之前,请转到目标SAPHANA系统,然后:

  1. (可选,但推荐)将所有已安装的集群置于维护模式,以免在还原操作期间发生意外接管。

  2. 确保系统数据库正在目标SAPHANA系统上运行。

  3. (推荐)禁用所有备份计划,以确保它们不会干扰恢复操作。

恢复任务完成后:

  • 启用您在恢复操作之前禁用的任何备份计划。

故障排除

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

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

    为了维护连续备份的恢复点,系统会SAPHANA为所有更改创建日志。当日志不可用时,每个连续恢复点的状态都将变为 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。检查所有先决条件,尤其是安装 AWS BackInt 代理和 AWS Systems ManagerSAP应用程序服务器SAP上的必备条件,然后再次尝试安装 BackInt 代理。

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

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

  • 错误:在SAPHANA高可用性系统上恢复租户数据库时遇到问题:b* -10709: Connection failed (RTE:[89006] System call 'connect' failed, rc=111:Connection refused ([::1]:40404 → localhost:30013))\n

    解决方案:检查SAPHANA以确保已启动SYSTEMDB且正在运行。

  • 错误b'* 448: recovery could not be completed: [301102] exception 301153: Sending root key to secondary failed: connection refused. This may be caused by a stopped system replication secondary. Please keep the secondary online to receive the restored root key. Alternatively you could unregister the secondary site in case of an urgent recovery.\n SQLSTATE: HY000\n'

    解决方案:在SAPHANA高可用性系统上,在运行主动还原操作时,SAPHANA可能无法在辅助节点上运行。在辅助节点SAPHANA上启动,然后再次重试恢复作业。

  • 错误: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 代理相关的问题,请参阅 B AWS ackint Agent 疑难解答。SAP HANA