

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EC2 インスタンスで SAP HANA データベースを復元する
<a name="saphana-restore"></a>

EC2 インスタンスの SAP HANA データベースは、 AWS Backup コンソール、API、または を使用して復元できます AWS CLI。

**Topics**
+ [AWS Backup コンソールを使用して SAP HANA データベースを復元する](#w2aac17c31c43b9)
+ [EC2 での SAP HANA 用の [StartRestoreJob API](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html)](#w2aac17c31c43c11)
+ [EC2 での SAP HANA 用 CLI](#w2aac17c31c43c13)
+ [SAP HANA の高可用性 (HA) の復元](#saphanarestoreha)
+ [トラブルシューティング](#saphanarestoretroubleshooting)

## AWS Backup コンソールを使用して SAP HANA データベースを復元する
<a name="w2aac17c31c43b9"></a>

同じデータベースに関係するバックアップジョブと復元ジョブは同時に実行できないことに注意してください。SAP HANA データベースの復元ジョブが発生しているときに、同じデータベースをバックアップしようとすると、「データベースが停止している間はバックアップできません」というエラーが表示される可能性があります。

1. 前提条件の認証情報を使用して AWS Backup コンソールにアクセスします。

1. **[ターゲットの復元場所]** ドロップダウンメニューで、復元に使用している復旧ポイントで上書きするデータベースを選択します (復元ターゲットのデータベースをホストするインスタンスには、前提条件を満たすアクセス許可も必要であることに注意してください)。
**重要**  
SAP HANA データベースの復元は破壊的です。データベースを復元すると、指定されたターゲット復元場所にあるデータベースが上書きされます。

1. このステップは、システムコピーの復元を実行する場合にのみ実行します。それ以外の場合は、ステップ 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
   ```

1. 復元場所を選択すると、ターゲットデータベースの**リソース ID**、**アプリケーション名**、**データベースタイプ**、および **EC2 インスタンス**が表示されます。

1. *オプションで*、**[復元の詳細設定]** を展開してカタログ復元オプションを変更できます。使用可能なオプションは、選択した復元設定によって異なります。

1. **[バックアップを復元]** をクリックします。

1. ターゲットの場所が復元中に上書き (**「破壊復元」**) されるので、次のポップアップダイアログボックスで許可するかどうかを確認する必要があります。

   1. 続行するには、復元するデータベースによって既存のデータベースが上書きされることを理解しておく必要があります。

   1. これを理解したら、既存のデータが上書きされることを承認する必要があります。これを承認して次に進むには、テキスト入力フィールドに **[上書き]** と入力します。

1. **[バックアップを復元]** をクリックします。

手順が成功すると、コンソールの上部に青いバナーが表示されます。これは、復元ジョブが進行中であることを示します。自動的にジョブページにリダイレクトされ、復元ジョブのリストに復元ジョブが表示されます。この最新のジョブのステータスは `Pending` になります。復元ジョブ ID を検索してクリックすると、各復元ジョブの詳細が表示されます。[更新] ボタンをクリックすると、復元ジョブリストを更新して、復元ジョブのステータスの変更を確認できます。

## EC2 での SAP HANA 用の [StartRestoreJob API](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html)
<a name="w2aac17c31c43c11"></a>

このアクションは、Amazon リソースネーム (ARN) で識別された保存されたリソースを回復します。

**リクエストの構文**

```
PUT /restore-jobs HTTP/1.1
Content-type: application/json
{
   "[IdempotencyToken](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html#Backup-StartRestoreJob-request-IdempotencyToken)": "string",
   "[Metadata](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html#Backup-StartRestoreJob-request-Metadata)": { 
      "string" : "string" 
   },
   "[RecoveryPointArn](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html#Backup-StartRestoreJob-request-RecoveryPointArn)": "string",
   "[ResourceType](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html#Backup-StartRestoreJob-request-ResourceType)": "string"
}
```

**URI リクエストパラメータ**: リクエストでは URI パラメータを使用しません。

**リクエスト本文**: リクエストは以下の JSON 形式のデータを受け入れます。

**IdempotencyToken** 別の `StartRestoreJob` への同じコール間を区別するために使用できる顧客が選択した文字列です。同じ冪等性トークンで成功したリクエストを再試行すると、アクションは実行されず、成功メッセージが表示されます。

タイプ: 文字列

必須: いいえ

**メタデータ**

メタデータのキーと値のペアのセット。リカバリポイントの復元に必要なリソース (リソース名など) を含みます。`GetRecoveryPointRestoreMetadata` を呼び出して、バックアップ時にリソースに関する構成メタデータを取得できます。ただし、`GetRecoveryPointRestoreMetadata` によって提供される値に加えて値リソースの復元が必要になる場合があります。たとえば、元のリソースがすでに存在する場合は、新しいリソース名を指定する必要があります。

Amazon EC2 インスタンスで SAP HANA を復元するには、特定のメタデータを含める必要があります。SAP HANA 固有のアイテムについては、「[StartRestoreJob メタデータ](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_StartRestoreJob.html#API_StartRestoreJob_RequestBody)」を参照してください。

関連するメタデータを取得するには、呼び出し [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRecoveryPointRestoreMetadata.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRecoveryPointRestoreMetadata.html) を使用できます。

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
<a name="w2aac17c31c43c13"></a>

コマンド `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]
```

**オプション**

`--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_CATALOG`、`LATEST_CATALOG_FROM_AWS_BACKUP`、`CATALOG_FROM_LOCAL_PATH` のうちのいずれか
+ `LocalCatalogPath`: CatalogRestoreOption メタデータの値が `CATALOG_FROM_LOCAL_PATH` の場合、EC2 インスタンスのローカルカタログへのパスを指定します。これは、EC2 インスタンス内の有効なファイルパスである必要があります。
+ `RecoveryType`: 現在、`FULL_DATA_BACKUP_RECOVERY`、`POINT_IN_TIME_RECOVERY`、および `MOST_RECENT_TIME_RECOVERY` のリカバリタイプがサポートされています。

キー = (文字列); 値 = (文字列)。短縮構文:

```
KeyName1=string,KeyName2=string
```

JSON 構文:

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

`--idempotency-token` は、別の `StartRestoreJob` への同じコール間を区別するために使用できる顧客が選択した文字列です。同じ冪等性トークンで成功したリクエストを再試行すると、アクションは実行されず、成功メッセージが表示されます。

`--resource-type` は、次のいずれかのリソースの復旧ポイントを復元するジョブを開始する文字列です: Amazon EC2 上の SAP HANA 用 の `SAP HANA on Amazon EC2`。*オプションで*、コマンド `aws ssm-sap tag-resource` を使用して SAP HANA リソースにタグを付けることができます。

**出力**: `RestoreJobId` は、リカバリーポイントを復元するジョブを一意に識別する文字列です。

## SAP HANA の高可用性 (HA) の復元
<a name="saphanarestoreha"></a>

SAP HANA の高可用性 (HA) システムを復元する際には、重要な考慮事項と、含めるべき追加の手順があります。以下で、ユースケースに最適なセクションを展開します。

復元シナリオ:

### システムデータベースを SAP HANA HA ターゲットに復元する
<a name="systemdbtargetha"></a>

ターゲット (復元先) SAP HANA HA システムに復元する前に

1. クラスターがインストールされている場合は、すべてのクラスターノートをメンテナンスモードにします。

1. プライマリノードとセカンダリノードを含むすべてのノードで SAP HANA データベースを停止します。

1. *(推奨)* バックアッププランを無効にして、復元オペレーションに干渉しないようにします。

復元ジョブが完了したら、復元された SAP HANA HA システムに移動し、次の操作を行います。

1. プライマリモードで SAP HANA データベースを起動します。

1. システムデータベースが復元されたが、そのテナントが復元されなかったテナントデータベースを手動で起動します。

1. プライマリノードとセカンダリノード間の SAP HANA システムのレプリケーション (HSR) を再確立します。

1. セカンダリノードで SAP HANA データベースを起動します。

1. クラスターがインストールされている場合は、すべてのクラスターノードがオンラインであることを確認します。

1. 復元オペレーションの前に無効にしたバックアッププランを有効にします。

*(オプション)* [https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_StartApplicationRefresh.html](https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_StartApplicationRefresh.html) を呼び出すことで、[AWS Systems Manager for SAP](https://docs.aws.amazon.com/ssm-sap/latest/userguide/what-is-ssm-for-sap.html) でアプリケーションを同期したままにすることも、最新の SAP メタデータを持ち込むスケジュールされたアプリケーションの更新を待つこともできます。

### SAP HANA シングルノードターゲットへのシステムデータベース
<a name="systemdbtargetsingle"></a>

復元ジョブを開始する前に、ターゲットの単一ノード SAP HANA システムに移動し、次の操作を行います。

1. ターゲット SAP HANA システムで SAP HANA データベースを停止します。

1. *(推奨)* バックアッププランを無効にして、復元オペレーションに干渉しないようにします。

復元ジョブが完了したら、ターゲットの単一ノード SAP HANA システムに移動し、次の操作を行います。

1. ターゲット SAP HANA システムで SAP HANA を起動します。

1. ターゲットノードで各テナントデータベースを手動で起動します。

1. 復元オペレーションの前に無効にしたバックアッププランを有効にします。

*(オプション)* [https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_StartApplicationRefresh.html](https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_StartApplicationRefresh.html) を呼び出すことで、[AWS Systems Manager for SAP](https://docs.aws.amazon.com/ssm-sap/latest/userguide/what-is-ssm-for-sap.html) でアプリケーションを同期したままにすることも、最新の SAP メタデータを持ち込むスケジュールされたアプリケーションの更新を待つこともできます。

### テナントデータベース (インプレースまたはシステムコピー)
<a name="tenantdb"></a>

復元ジョブを開始する前に、ターゲット SAP HANA システムに移動し、次の操作を行います。

1. *(オプションですが推奨)* 復元オペレーション中に予期しない乗っ取りが発生しないように、インストールされているクラスターをメンテナンスモードにします。

1. システムデータベースがターゲット SAP HANA システムで実行されていることを確認します。

1. *(推奨)* バックアッププランを無効にして、復元オペレーションに干渉しないようにします。

復元ジョブが完了した後:
+ 復元オペレーションの前に無効にしたバックアッププランを有効にします。

## トラブルシューティング
<a name="saphanarestoretroubleshooting"></a>

バックアップオペレーションを試みているときに以下のエラーのいずれかが発生した場合は、関連する解決策を参照してください。
+ **エラー:** 継続的バックアップログエラー

  継続的バックアップの復旧ポイントを維持するために、SAP HANA はすべての変更についてログを作成します。ログが利用できなくなると、これらの継続的復旧ポイントそれぞれのステータスは `STOPPED` になります。復元に使用できる最後の実行可能な復旧ポイントは、ステータスが `AVAILABLE` の復旧ポイントです。ステータスが `STOPPED` である復旧ポイントと、ステータスが `AVAILABLE` である復旧ポイントとの間でログデータが欠落している場合、その期間での復元が成功する保証はありません。この範囲内の日付と時刻を入力すると、 AWS Backup はバックアップを試みますが、最も近い復元可能な時間が使用されます。このエラーはメッセージ `“Encountered an issue with log backups. Please check SAP HANA for details."` に表示されます

  **解決策:** コンソールには、ログに基づいて復元可能な最新の時刻が表示されます。表示されている時刻よりも新しい時刻を入力できます。ただし、この時刻のデータがログで使用できない場合、 AWS Backup は復元可能な最新の時刻を使用します。
+ **エラー: ** `Internal error`

  **解決策:** コンソールからサポートケースを作成するか、復元ジョブ ID などの復元の詳細 サポート について にお問い合わせください。
+ **エラー: ** `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 Manager for SAP を SAP アプリケーションサーバー](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-installing-configuring.html)にインストールし、BackInt エージェントのインストールを再試行してください。
+ **エラー: ** `IllegalArgumentException: Restore job provided is not ready to return chunks, current restore job status is: CANCELLED`

  **解決策:** 復元ジョブがサービスワークフローによってキャンセルされました。復元ジョブを再試行します。
+ **エラー:** SAP HANA 高可用性システム上のテナントデータベースの復元で問題が発生しました: `b* -10709: Connection failed (RTE:[89006] System call 'connect' failed, rc=111:Connection refused ([::1]:40404 → localhost:30013))\n`

  **解決策:** SAP HANA を確認して、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'`

  **解決策:** SAP HANA 高可用性システムで、アクティブな復元オペレーションの実行中に SAP HANA がセカンダリノードで実行されていない可能性があります。セカンダリノードで SAP HANA を起動し、復元ジョブを再試行します。
+ **エラー: ** `RequestError: send request failed\ncaused by: read tcp 10.0.131.4:40482->35.84.99.47:443: read: connection timed out"`

  **解決策:** インスタンスで一時的にネットワークが不安定になっています。復元を再試行します。この問題が常に発生する場合は、`/hana/shared/aws-backint-agent/aws-backint-agent-config.yaml.` のエージェント設定ファイルに `ForceRetry: "true"` を追加してみます。

その他の AWS Backint エージェント関連の問題については、「[Backint Agent for SAP HANA のトラブルシューティング AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-troubleshooting.html)」を参照してください。