

# 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\_archive\_log\_retention](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 は、サービスを中断することなく、ソースデータベースとレプリカに必要なパラメータとアクセス許可を設定します。同様に、レプリカを削除する場合も、停止は発生しません。