

# Amazon RDS for Db2 のレプリカの使用
<a name="db2-replication"></a>

RDS for Db2 は、リードスケーリングとディザスタリカバリ機能を提供するレプリカデータベースの作成をサポートしています。レプリカは、読み取りワークロードをオフロードするための読み取り専用レプリカと、クロスリージョンディザスタリカバリ用のスタンバイレプリカの 2 つのモードで作成できます。RDS for Db2 は、IBM Db2 高可用性ディザスタリカバリ (HADR) をレプリケーションに使用します。詳細については、IBM Db2 ドキュメントの「[High availability disaster recovery (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)」を参照してください。

*Db2 レプリカ*データベースは、プライマリデータベースの物理コピーです。読み取り専用モードの Db2 レプリカは、*リードレプリカ*と呼ばれます。スタンバイモードの Db2 レプリカは、*スタンバイレプリカ*と呼ばれます。Db2 では、レプリカに対する書き込みは許可されませんが、レプリカを昇格させて書き込み可能にすることができます。昇格させたレプリカには、昇格をリクエストした時点までにレプリケートされたデータが含まれます。詳細については、「[リードレプリカをスタンドアロン DB インスタンスに昇格させる](USER_ReadRepl.Promote.md)」を参照してください。

RDS for Db2 レプリカの機能と動作の概要については、「[DB エンジンのリードレプリカ間の違い](USER_ReadRepl.Overview.Differences.md)」を参照してください。

## 読み取り専用レプリカとスタンバイレプリカ
<a name="db2-read-replicas.overview.modes"></a>

Db2 レプリカを作成または変更する場合、次のモードのいずれかにすることができます。

**読み取り専用モード**。  
これがデフォルトです。HADR は、ソースデータベースからすべてのリードレプリカデータベースに変更を送信し、適用します。読み取り専用レプリカの場合、Db2 環境変数 `DB2_HADR_ROS` は `ON` に設定されます。レプリカデータベースの読み取りクエリの分離レベルは `Uncommitted Read` です。詳細については、IBM Db2 ドキュメントの「[Isolation level on the active standby database](https://www.ibm.com/docs/en/db2/11.5?topic=standby-isolation-level-active-database)」を参照してください。  
すべての DB エンジンに適用されるリードレプリカの一般的な情報については、「[DB インスタンスのリードレプリカの操作](USER_ReadRepl.md)」を参照してください。Db2 HADR の詳細については、IBM Db2 ドキュメントの「[High availability disaster recovery (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)」を参照してください。

 **スタンバイ**  
スタンバイレプリカでは、Db2 環境変数 `DB2_HADR_ROS` を `OFF` に設定し、レプリカデータベースがユーザー接続を受け付けないようにします。スタンバイレプリカの主な用途は、クロスリージョンのディザスタリカバリです。  
スタンバイレプリカは、読み取り専用のワークロードを処理できません。スタンバイレプリカにはアーカイブログがありません。

1 つのソース DB インスタンスから最大 3 つのリードレプリカを作成できます。同じソース DB インスタンスに対して、読み取り専用 DB レプリカとスタンバイ DB レプリカを組み合わせて作成できます。レプリカを作成したら、レプリカモードを変更できます。詳細については、「[RDS for Db2 レプリカモードの変更](db2-replicas-changing-replica-mode.md)」を参照してください。

レプリカを作成する前に、すべての要件を満たしていることを確認してください。詳細については、「[RDS for Db2 レプリカの要件と考慮事項](db2-read-replicas.limitations.md)」を参照してください。

## データベースのアクティブ化
<a name="db2-read-replicas.overview.database-activations"></a>

Db2 HADR はデータベースレベルで設定します。レプリカを作成すると、RDS が完全に管理する `rdsadmin` を含むすべての Db2 データベースに HADR が設定されます。Db2 レプリカを作成する前に、すべてのデータベースを明示的にアクティブ化する必要があります。そうしないと、レプリカの作成は失敗し、Amazon RDS でイベントが発生します。DB インスタンスに 1 つ以上のレプリカがある場合、`rdsadmin.activate_database` または `rdsadmin.deactivate_database` ストアドプロシージャを使用して DB インスタンスのデータベースをアクティブ化または非アクティブ化することはできません。詳細については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。

## HADR 設定
<a name="db2-read-replicas.overview.hadr-configurations"></a>

データベースに接続して `db2 get db cfg` を実行すると、データベースのすべての HADR 設定を表示できます。

## アーカイブログの保持
<a name="db2-read-replicas.overview.log-retention"></a>

Amazon RDS は、以下の条件が満たされると、プライマリ DB インスタンスからログを消去します。
+ ログは 2 時間以上経過している。
+ アーカイブログに設定した保持時間が経過している。
+ アーカイブログは、すべてのレプリカ DB インスタンスに正常にレプリケートされている。この条件は、同じ AWS リージョン内の DB インスタンスと、クロスリージョンの DB インスタンスの両方に適用されます。

アーカイブログの保持時間の設定については、「[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)」を参照してください。

Amazon RDS は、各データベースを個別にチェックしてクリーンアップします。データベースが HADR 接続を失った場合や、接続に関する情報が利用できない場合、Amazon RDS はデータベースをスキップし、アーカイブログを消去しません。

## Db2 レプリケーション中の停止
<a name="db2-read-replicas.overview.outages"></a>

リードレプリカを作成すると、Amazon RDS はソース DB インスタンスの DB スナップショットを取得し、レプリケーションを開始します。DB スナップショットオペレーションが始まると、ソース DB インスタンスでごく短時間の I/O 停止が発生します。通常、I/O 停止は約 1 秒続きます。ただし、ソース DB インスタンスがマルチ AZ 配置の場合、ソース DB インスタンスでは I/O 停止が発生しません。マルチ AZ 配置では、スナップショットがセカンダリ DB インスタンスから取得されるためです。

DB スナップショットが Db2 レプリカになります。Amazon RDS は、サービスを中断することなく、ソースデータベースとレプリカに必要なパラメータとアクセス許可を設定します。同様に、レプリカを削除する場合も、停止は発生しません。

# RDS for Db2 レプリカの要件と考慮事項
<a name="db2-read-replicas.limitations"></a>

Db2 レプリカの要件は、ライセンスとバージョニング、バックアップと復元に関する考慮事項、レプリケーションの動作、一般的な運用上の考慮事項のいくつかのカテゴリに分類されます。Db2 レプリカを作成する前に、以下の要件と考慮事項をよく確認してください。

## RDS for Db2 レプリカのバージョンとライセンスの要件
<a name="db2-read-replicas.limitations.versions-and-licenses"></a>

RDS for Db2 レプリカを作成する前に、バージョンとライセンスモデルに関する次の情報を確認してください。
+ **サポートされるバージョン** – すべての Db2 11.5 バージョンは、レプリカ DB インスタンスをサポートしています。

  ソース DB インスタンスとレプリカ DB インスタンスは、同じメジャーバージョンを使用する必要があります。Db2 レプリカはマイナーバージョンアップグレードをサポートしていますが、メジャーバージョンアップグレードはサポートしていません。DB インスタンスのアップグレードに関する情報については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。
**注記**  
ソース DB インスタンスをアップグレードすると、すべてのレプリカが自動的にアップグレードされ、バージョンの互換性が維持されます。
+ **有効なライセンスモデルとレプリカモード** – Db2 の Advanced Edition (AE) と Standard Edition (SE) のどちらも、Bring Your Own License (BYOL) モデルと Db2 ライセンス (AWS Marketplace モデル経由) の両方で、読み取り専用モードまたはスタンバイモードでレプリカを作成できます。
+ **カスタムパラメータグループ** – レプリカのカスタムパラメータグループを指定する必要があります。

  BYOL モデルを使用するレプリカの場合、このカスタムパラメータグループには IBM Site ID と IBM Customer ID を含める必要があります。詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。レプリカのカスタムパラメータグループは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して指定できます。
+ **vCPU の数**は、レプリカモードとライセンスモデルによって異なります。
  + **スタンバイレプリカ**は、DB インスタンスのサイズに関係なく、常に 2 つの vCPU を使用します。
    + **BYOL モデル** – AWS License Manager の設定は RDS for Db2 DB インスタンスが 2 つの vCPU を使用することを示します。
    + **AWS Marketplace モデル経由の Db2 ライセンス** – 請求には 2 つの vCPU のライセンスコストが反映されます。
  + **読み取り専用レプリカ**は、DB インスタンスサイズと同じ vCPU 数を使用します。
    + **BYOL モデル** – AWS License Manager 設定は、RDS for Db2 DB インスタンスが DB インスタンスサイズに一致する同じ数の vCPU を使用することを示しています。
    + **AWS Marketplace モデル経由の Db2 ライセンス** – 請求書には、DB インスタンスサイズに一致する同じ数の vCPU ライセンスコストが反映されます。

## RDS for Db2 レプリカのバックアップと復元に関する考慮事項
<a name="db2-read-replicas.limitations.backups"></a>

レプリカバックアップの動作は、プライマリデータベースバックアップとは異なります。次のバックアップと復元の要件を検討してください。
+ RDS for Db2 レプリカのスナップショットを作成したり、自動バックアップを有効にしたりするには、必ずバックアップ保持期間を手動で設定してください。自動バックアップは、デフォルトでは有効になっていません。
+ レプリカのバックアップを復元するときは、バックアップが実行された時刻ではなく、データベース時刻に復元することになります。データベース時刻は、バックアップのデータにトランザクションが最後に適用された時刻を指します。レプリカはプライマリよりも数分または数時間遅れることがあるため、この違いは重要です。複数のデータベースがある場合、RDS for Db2 は最も早いデータベース時間を使用します。

  違いを確認するには、AWS CLI の [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) コマンドを実行するか、RDS API の [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) オペレーションを呼び出します。`SnapshotDatabaseTime` 値と `OriginalSnapshotCreateTime` 値を比較します。`SnapshotDatabaseTime` 値は、レプリカバックアップのデータベース時刻です。`OriginalSnapshotCreateTime` 値は、プライマリデータベースに最後に適用されたトランザクションです。

バックアップおよびバックアップを復元する方法については、「[RDS for Db2 レプリカのバックアップの使用](db2-read-replicas.backups.md)」を参照してください。

## RDS for Db2 レプリカのレプリケーションに関する考慮事項
<a name="db2-read-replicas.limitations.replication"></a>

Db2 レプリカは、特定の制限と動作を持つ HADR テクノロジーを使用します。次のレプリケーションに関する考慮事項を確認してください。
+ レプリケーションは、RDS for Db2 DB インスタンスのすべてのデータベースに Db2 HADR を使用します。
+ レプリケーションは `LOAD` コマンドをサポートしていません。ソース DB インスタンスから `LOAD` コマンドを実行すると、不整合なデータが返されます。
+ RDS for Db2 は、以下の項目をレプリケートしません。
  + ストレージアクセス。ストレージアクセスに依存する、外部テーブルなどのデータに注意してください。
  + ログに記録されない非インライン LOB。
  + 外部ストアドプロシージャのバイナリ (C または Java)。
+ スタンバイレプリカの場合、RDS for Db2 は以下の項目をレプリケートします。
  + マスターユーザーを除くローカルユーザー
  + データベース設定パラメータ
+ 読み取り専用レプリカの場合、RDS for Db2 は以下の項目をレプリケートします。
  + マスターユーザーを除くローカルユーザー
  + SID グループマッピング

## RDS for Db2 レプリカに関するその他の考慮事項
<a name="db2-read-replicas.limitations.miscellaneous"></a>

Db2 レプリカには、追加の運用上の考慮事項が適用されます。以下の項目を確認します。
+ RDS for Db2 は、データベース設定をレプリカにレプリケートします。RDS for Db2 は、レプリカの昇格時に、各データベースを非アクティブ化およびアクティブ化します。
+ RDS for Db2 は、(マスターユーザーではなく) ローカルユーザーと SID グループマッピングをレプリカにレプリケートします。レプリカのマスターユーザーは変更できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ すべてのデータベースはアクティブ状態である必要があります。データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ レプリカを作成する前に、データベースを作成、削除、復元、またはロールフォワードするすべてのストアドプロシージャを完了する必要があります。これらのストアドプロシージャについては、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ レプリカが作成されると、Amazon RDS はソース DB インスタンスのすべてのデータベースについて、データベースレベルのパラメータ `blocknonlogged` を `YES` に設定します。ソースレプリカが再びスタンドアロンインスタンスになると、Amazon RDS は値を `NO` に戻します。詳細については、IBM Db2 ドキュメントの「[blocknonlogged - Block creation of tables that allow non-logged activity configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=dcp-blocknonlogged-block-creation-tables-that-allow-non-logged-activity)」を参照してください。
+ レプリカが作成されると、Amazon RDS はソース DB インスタンスのすべてのデータベースについて、データベースレベルのパラメータ `logindexbuild` を `YES` に設定します。ソースレプリカが再びスタンドアロンインスタンスになると、Amazon RDS は値を `NO` に戻します。詳細については、IBM Db2 ドキュメントの「[logindexbuild - Log index pages created configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=parameters-logindexbuild-log-index-pages-created)」を参照してください。

# RDS for Db2 レプリカの作成の準備
<a name="db2-read-replicas.Configuration"></a>

RDS for Db2 レプリカを作成する前に、レプリケーションを成功させるために以下のタスクを完了する必要があります。これらのタスクは、一般的な問題を防ぎ、最適なパフォーマンスを確保するのに役立ちます。

## タスク 1: 自動バックアップの有効化
<a name="db2-read-replicas.configuration.autobackups"></a>

DB インスタンスがソース DB インスタンスとして機能するには、ソース DB インスタンスで自動バックアップを有効にする必要があります。これは、すべてのレプリカ作成オペレーションの前提条件です。この手順の実行方法については、「[自動バックアップの有効化](USER_WorkingWithAutomatedBackups.Enabling.md)」を参照してください。

Db2 レプリカに固有のバックアップについては、「[RDS for Db2 レプリカのバックアップの使用](db2-read-replicas.backups.md)」を参照してください。

## タスク 2: コンピューティングとストレージのリソース計画
<a name="db2-read-replicas.configuration.planning-resources"></a>

ソース DB インスタンスとそのレプリカのサイズが、運用負荷に合わせる上でコンピューティングとストレージの観点から適切に設定されていることを確認してください。レプリカのコンピューティング、ネットワーク、またはストレージがリソースの容量に達すると、レプリカはソースからの変更の受信または適用を停止します。レプリカのパフォーマンスとリソース使用率のモニタリングについては、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」を参照してください。

RDS for Db2 が、ソース DB インスタンスとそのレプリカの間におけるレプリカの高遅延を軽減するために介入することはありません。レプリカの遅延が大きい場合は、トラブルシューティングのガイダンスについて「[Db2 レプリケーション遅延のモニタリング](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)」を参照してください。

レプリカのストレージや CPU リソースは、そのソースや他のレプリカとは独立して変更することができます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## タスク 3: データベースを準備する
<a name="db2-read-replicas.configuration.activate-databases"></a>

レプリカを作成する前に、次の点に基づいてデータベースの準備が整っていることを確認します。
+ DB インスタンスにすべての必要なデータベースが含まれていることを確認してください。レプリカの作成後は、DB インスタンス内のデータベースを作成、削除、またはネイティブ復元することはできません。[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)、[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database)、または [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) ストアドプロシージャへのすべての呼び出しは失敗します。
+ DB インスタンス内のすべてのデータベースはアクティブ状態です。データベースが非アクティブ状態の場合、レプリカの作成は失敗します。データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。

## 次のステップ
<a name="db2-read-replicas-configuration-next-steps"></a>

すべての準備タスクを完了したら、Db2 レプリカを作成する準備が整います。
+ 読み取り専用レプリカを作成するには、「[リードレプリカの作成](USER_ReadRepl.Create.md)」を参照してください。
+ スタンバイレプリカを作成するには、「[スタンバイ Db2 レプリカの作成](db2-read-replicas.creating-in-standby-mode.md)」を参照してください。

# スタンバイモードでの RDS for Db2 レプリカの作成
<a name="db2-read-replicas.creating-in-standby-mode"></a>

デフォルトでは、Db2 レプリカは読み取り専用モードで作成されます。ディザスタリカバリの目的で、スタンバイモードでレプリカを作成できます。スタンバイレプリカはユーザー接続を受け入れませんが、クロスリージョンシナリオでより高速なフェイルオーバー機能を提供します。

スタンバイレプリカを作成する前に、準備タスクが完了していることを確認してください。詳細については、「[RDS for Db2 レプリカの作成の準備](db2-read-replicas.Configuration.md)」を参照してください。スタンバイレプリカを作成したら、レプリカモードを変更できます。詳細については、「[RDS for Db2 レプリカモードの変更](db2-replicas-changing-replica-mode.md)」を参照してください。

スタンバイレプリカを作成するには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用できます。読み取り専用レプリカの作成については、「[リードレプリカの作成](USER_ReadRepl.Create.md)」を参照してください。

## コンソール
<a name="db2-read-replicas.creating-in-standby-mode.console"></a>

**ソース RDS for Db2 DB インスタンスからスタンバイレプリカを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. スタンバイレプリカのソースとして使用する RDS for Db2 DB インスタンスを選択します。

1. **アクション**で**レプリカの作成**を選択します。

1. **[レプリカモード]**で、**[スタンバイ]**を選択します。

1. 使用する設定を選択します。**[DB インスタンス識別子]** に、スタンバイレプリカの名前を入力します。必要に応じて他の設定を変更します。

1. **[リージョン]** で、スタンバイレプリカを起動する AWS リージョンを選択します。

1. インスタンスサイズとストレージタイプを選択します。スタンバイレプリカでもソース DB インスタンスと同じ DB インスタンスクラスとストレージタイプを使用することをお勧めします。

1. **[マルチ AZ 配置]** で **[スタンバイインスタンスを作成]** を選択し、スタンバイレプリカのフェイルオーバーをサポートするために、別のアベイラビリティーゾーンにレプリカのスタンバイを作成します。

1. 使用する他の設定を選択します。

1. **レプリカの作成**を選択します。

**[データベース]** ページで、スタンバイレプリカにロールとして **[レプリカ]** が割り当てられます。

## AWS CLI
<a name="db2-read-replicas.creating-in-standby-mode.cli"></a>

スタンバイモードで Db2 レプリカを作成するには、AWS CLI コマンド [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) で `--replica-mode` を `mounted` に設定します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier my_standby_replica \
    --source-db-instance-identifier my_db_instance \
    --replica-mode mounted
```
Windows の場合:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier my_standby_replica ^
    --source-db-instance-identifier my_db_instance ^
    --replica-mode mounted
```

## RDS API
<a name="db2-read-replicas.creating-in-standby-mode.api"></a>

スタンバイモードで Db2 レプリカを作成するには、RDS API オペレーション [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) で `ReplicaMode=mounted` を指定します。

# RDS for Db2 レプリカモードの変更
<a name="db2-replicas-changing-replica-mode"></a>

既存の Db2 レプリカのレプリカモードは、読み取り専用モードとスタンバイモードの間で変更できます。この柔軟性により、読み取りワークロードやディザスタリカバリのニーズの変化する要件に基づいてレプリカ設定を適応させることができます。

以下のシナリオでは、レプリカモードを変更することができます。
+ **読み取り専用からスタンバイ** – 読み取り容量が不要になったが、ディザスタリカバリ機能を維持したい場合
+ **読み取り専用へのスタンバイ** – レポートまたは分析ワークロードの読み取り容量を追加する必要がある場合

レプリカモードを変更する前に、次の条件が満たされていることを確認してください。
+ レプリカは使用可能な状態です。
+ レプリカでアクティブなメンテナンスオペレーションが実行されていません。
+ DB インスタンスを変更するために必要なアクセス許可があります。

変更には数分かかる場合があります。オペレーション中、DB インスタンスのステータスは **modifying** に変わります。ステータス変更の詳細については、「[ Amazon RDS DB インスタンスのステータスの表示](accessing-monitoring.md#Overview.DBInstance.Status)」を参照してください。読み取り専用モードからスタンバイモードに変更すると、レプリカはすべてのアクティブな接続を切断します。

**重要**  
レプリカモードを変更するとサービスが一時的に中断されるため、メンテナンスウィンドウ中に変更を計画して、アプリケーションへの影響を最小限に抑えます。

レプリカモードは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して変更できます。

## コンソール
<a name="db2-replicas-changing-replica-mode-console"></a>

**Db2 レプリカのレプリカモードを変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. 変更するレプリカデータベースを選択します。

1. **[Modify]** (変更) を選択します。

1. **[レプリカモード]** では、目的のモードを選択します。
   + **読み取り専用** – 読み取りワークロード用
   + **スタンバイ** — ディザスタリカバリ用

1. 変更する他の設定を選択します。

1. [**Continue**] を選択します。

1. [**変更のスケジューリング**] で、[**すぐに適用**] を選択します。

1. [**DB インスタンスの変更**] を選択します。

1. 変更が完了したら、**[データベース]** ページでレプリカモードの変更を確認します。変更が完了すると、レプリカのステータスが **[利用可能]** と表示されます。

## AWS CLI
<a name="db2-replicas-changing-replica-mode-cli"></a>

Db2 レプリカを読み取り専用モードからスタンバイモードに変更するには、AWS CLI コマンド [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) で `--replica-mode` を `mounted` に設定します。Db2 レプリカをスタンバイモードから読み取り専用モードに変更するには、`--replica-mode` を `open-read-only` に設定します。

次の例では、レプリカを読み取り専用モードからスタンバイモードに変更します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode mounted
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode mounted
```

次の例では、レプリカをスタンバイモードから読み取り専用モードに変更します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode open-read-only
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode open-read-only
```

## RDS API
<a name="db2-replicas-changing-replica-mode-api"></a>

Db2 レプリカを読み取り専用モードからスタンバイモードに変更するには、[ModifyDBInstance](AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) で `ReplicaMode=mounted` に設定します。Db2 レプリカをスタンバイモードから読み取り専用モードに変更するには、`ReplicaMode=open-read-only` に設定します。

以下は、レプリカモードを読み取り専用からスタンバイに変更するための API コールの例です。

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "mounted",
    "ApplyImmediately": true
}
```

以下は、レプリカモードをスタンバイモードから読み取り専用モードに変更するための API コールの例です。

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "open-read-only",
    "ApplyImmediately": true
}
```

レプリカモードの違いについては、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。レプリカの問題のトラブルシューティングについては、「[RDS for Db2 レプリケーションの問題のトラブルシューティング](db2-troubleshooting-replicas.md)」を参照してください。

# RDS for Db2 レプリカのバックアップの使用
<a name="db2-read-replicas.backups"></a>

プライマリデータベースと同様に、RDS for Db2 レプリカのバックアップを作成および復元できます。ただし、レプリカバックアップの仕組み、特に復元のタイミングとバックアップの保持設定には重要な違いがあります。

RDS for Db2 は、レプリカの自動バックアップと手動スナップショットの両方をサポートしています。RDS for Db2 はポイントインタイムリストアをサポートしていません。RDS バックアップの詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

## レプリカバックアップの主な違い
<a name="db2-read-replicas-backups-overview"></a>

レプリカバックアップは、いくつかの重要な点でプライマリデータベースバックアップとは異なります。
+ 自動バックアップは、レプリカではデフォルトで有効になっていません。
+ 復元オペレーションでは、バックアップの作成時間ではなくデータベース時間を使用します。
+ レプリカの遅延は、復元された実際のデータに影響を与える可能性があります。レプリカ遅延のモニタリングの詳細については、「[Db2 レプリケーション遅延のモニタリング](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)」を参照してください。

## RDS for Db2 レプリカの自動バックアップの有効化
<a name="db2-read-replicas.backups.turning-on"></a>

プライマリデータベースとは異なり、RDS for Db2 レプリカでは、自動バックアップがデフォルトで有効になっていません。自動バックアップを有効にするには、バックアップ保持期間を手動で設定する必要があります。バックアップ保持期間を 0 以外の正の値に設定することで自動バックアップを有効にします。

### コンソール
<a name="db2-read-replicas.backups.turning-on-console"></a>

**自動バックアップをすぐに有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. **[Modify]** (変更) を選択します。

1. **[バックアップ保持期間]** で、ゼロ以外の正の値 (3 日など) を選択します。

1. **[続行]** を選択します。

1. **[すぐに適用]** を選択します。

1. **[DB インスタンスを変更]** を選択して変更を保存し、自動バックアップを有効にします。

### AWS CLI
<a name="db2-read-replicas.backups.turning-on-cli"></a>

自動バックアップを有効にするには、AWS CLI の [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。

以下のパラメータを含めます。
+ `--db-instance-identifier`
+ `--backup-retention-period`
+ `--apply-immediately` 、、または `--no-apply-immediately`

次の例では、バックアップ保持期間を 3 日に設定して、自動バックアップを有効にします。変更はすぐに適用されます。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### RDS API
<a name="db2-read-replicas.backups.turning-on-api"></a>

自動バックアップを有効にするには、以下の必須パラメータを指定して RDS API の [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) オペレーションを使用します。
+ `DBInstanceIdentifier`
+ `BackupRetentionPeriod`

## RDS for Db2 レプリカのバックアップの復元
<a name="db2-read-replicas.backups.restoring"></a>

RDS for Db2 レプリカのバックアップは、プライマリデータベースのバックアップを復元するのと同じ方法で復元できます。詳細については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。

レプリカバックアップを復元する際の最も重要な考慮事項は、特にレプリカラグが存在する場合、データベース時間とバックアップ作成時間の違いを理解することです。

レプリケーションの遅延をモニタリングし、バックアップに期待されるデータが含まれていることを確認できます。ReplicaLag メトリクスについては、「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」をご参照ください。

### タイミングの違いについて
<a name="db2-read-replicas-backups-restoring-timing"></a>

レプリカバックアップを復元する場合、復元する時点を決定する必要があります。データベース時刻は、バックアップのデータにトランザクションが最後に適用された時刻を指します。レプリカのバックアップを復元するときは、バックアップが完了した時刻ではなく、データベース時刻に復元することになります。レプリカはプライマリデータベースよりも数分または数時間遅れることがあるため、この違いは重要です。したがって、レプリカバックアップのデータベース時間は、スナップショットの作成時間よりもはるかに早い場合があります。

データベース時刻と作成時刻の違いを確認するには、AWS CLI の [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) コマンドを実行するか、RDS API の [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) オペレーションを呼び出します。`SnapshotDatabaseTime` 値と `OriginalSnapshotCreateTime` 値を比較します。`SnapshotDatabaseTime` 値は、レプリカバックアップのすべてのデータベースのうち、最も早いデータベース時刻です。`OriginalSnapshotCreateTime` 値は、プライマリデータベースに最後に適用されたトランザクションです。レプリケーション遅延は複数のデータベースで異なる場合があり、データベース時刻はこれら 2 つの時刻の間になる可能性があることに注意してください。

次の AWS CLI の例は、2 つの時刻の差を示しています。

Linux、macOS、Unix の場合:

```
aws rds describe-db-snapshots \
    --db-instance-identifier my_db2_replica \
    --db-snapshot-identifier my_replica_snapshot
```

Windows の場合:

```
aws rds describe-db-snapshots ^
    --db-instance-identifier my_db2_replica ^
    --db-snapshot-identifier my_replica_snapshot
```

このコマンドでは、次の例のような出力が生成されます。

```
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my_replica_snapshot",
            "DBInstanceIdentifier": "my_db2_replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# RDS for Db2 レプリケーションの問題のトラブルシューティング
<a name="db2-troubleshooting-replicas"></a>

このトピックでは、RDS for Db2 レプリケーションの一般的な問題について説明し、読み取り専用レプリカとスタンバイレプリカの両方のトラブルシューティングガイダンスを提供します。以下のトラブルシューティング情報を確認するだけでなく、Db2 レプリカを作成する前に、[要件と考慮事項](db2-read-replicas.limitations.md)に従って[準備手順](db2-read-replicas.Configuration.md)を完了していることを確認してください。

## レプリカ作成の失敗
<a name="db2-troubleshooting-replicas-creation"></a>



レプリカの作成は、いくつかの理由で失敗することがあります。
+ **非アクティブなデータベース** – レプリカを作成する前に、ソース DB インスタンス上のすべてのデータベースがアクティブである必要があります。

  データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ **自動バックアップがない** – ソース DB インスタンスで自動バックアップが有効になっている必要があります。

  バックアップの有効化については、「[RDS for Db2 レプリカの自動バックアップの有効化](db2-read-replicas.backups.md#db2-read-replicas.backups.turning-on)」を参照してください。
+ **パラメータグループの問題** – レプリカにはカスタムパラメータグループが必要です。BYOL ライセンスの場合、パラメータグループには IBM Site ID と IBM Customer ID を含める必要があります。

  詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。

## Db2 レプリケーション遅延のモニタリング
<a name="db2-troubleshooting-replicas-lag"></a>

Amazon CloudWatch のレプリケーションラグをモニタリングするには、Amazon RDS `ReplicaLag` メトリクスを表示します。レプリケーションのラグタイムについては、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」および「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」を参照してください。レプリカの遅延の CloudWatch アラームの設定については、「[Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング](monitoring-cloudwatch.md)」を参照してください。

読み取り専用レプリカの場合、遅延時間が長すぎるときは、`MON_GET_HADR` テーブルをクエリしてレプリカ DB インスタンスのステータスをチェックします。

スタンバイレプリカの場合、遅延時間が長すぎるときは、`MON_GET_HADR` テーブルをクエリしてソース DB インスタンスのステータスをチェックします。レプリカ DB インスタンスはユーザー接続を受け付けないため、レプリカ DB インスタンスをクエリしないでください。

レプリケーションの遅延が高い一般的な原因には、次のようなものがあります。
+ レプリカのコンピューティングリソースが不十分
+ ソースとレプリカ間のネットワーク接続の問題
+ ソースデータベースでの書き込みアクティビティが高い
+ レプリカのストレージパフォーマンスの制限

レプリケーションの遅延が大きい場合は、レプリカリソースのスケーリングを検討してください。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Db2 レプリケーションエラー
<a name="db2-troubleshooting-replicas-triggers"></a>

Db2 レプリケーションは、さまざまな理由でエラー状態になることがあります。次のアクションを実行します。
+ イベントと DB インスタンスの状態をモニタリングして、DB インスタンスがレプリケートされていることを確認してください。

  詳細については、「[Amazon RDS イベント通知の操作](USER_Events.md)」を参照してください。
+ Amazon RDS コンソールで Db2 レプリカの診断ログを確認します。ログで、HADR メッセージのエラーを探します。ログシーケンス番号とプライマリシーケンス番号を比較します。

  Db2 診断ログへのアクセスと解釈については、「[Amazon RDS for Db2 データベースのログファイル](USER_LogAccess.Concepts.Db2.md)」を参照してください。Db2 HADR の設定とトラブルシューティングの詳細については、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。

レプリケーションエラーが解決しない場合は、レプリカを再作成する必要がある場合があります。

## 接続の問題
<a name="db2-troubleshooting-replicas-connections"></a>

レプリカに接続できない場合は、レプリカモードに関する次の情報を確認してください。
+ **スタンバイレプリカ** – 設計上、ユーザー接続は受け付けません。読み込みワークロードには読み取り専用レプリカを使用します。
+ **読み取り専用レプリカ** – セキュリティグループ設定、ネットワーク ACL、パラメータグループ設定を確認します。

  詳細については、「*Amazon VPC ユーザーガイド*」の「[セキュリティグループを使用して AWS リソースへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)」、「*Amazon VPC ユーザーガイド*」の「[ネットワークアクセスコントロールリストを使用してサブネットのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」、および「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

## パフォーマンスの問題
<a name="db2-troubleshooting-replicas-performance"></a>

レプリカのパフォーマンスが低い場合は、次の提案を確認してください。
+ レプリカに適切なコンピューティングリソースとストレージリソースがあることを確認します。
+ Amazon CloudWatch で `ReplicaLag` メトリクスをモニタリングします。
+ レプリカ DB インスタンスクラスをスケールアップすることを検討してください。

リソースまたはインスタンスクラスの変更方法については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

レプリケーション遅延のモニタリングの詳細については、「[レプリケーションラグのモニタリング](USER_ReadRepl.Monitoring.md#USER_ReadRepl.Monitoring.Lag)」と「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」を参照してください。レプリカの遅延の CloudWatch アラームの設定については、「[Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング](monitoring-cloudwatch.md)」を参照してください。