Amazon RDS for Db2 のレプリカの使用
RDS for Db2 は、リードスケーリングとディザスタリカバリ機能を提供するレプリカデータベースの作成をサポートしています。レプリカは、読み取りワークロードをオフロードするための読み取り専用レプリカと、クロスリージョンディザスタリカバリ用のスタンバイレプリカの 2 つのモードで作成できます。RDS for Db2 は、IBM Db2 高可用性ディザスタリカバリ (HADR) をレプリケーションに使用します。詳細については、IBM Db2 ドキュメントの「High availability disaster recovery (HADR)
Db2 レプリカデータベースは、プライマリデータベースの物理コピーです。読み取り専用モードの Db2 レプリカは、リードレプリカと呼ばれます。スタンバイモードの Db2 レプリカは、スタンバイレプリカと呼ばれます。Db2 では、レプリカに対する書き込みは許可されませんが、レプリカを昇格させて書き込み可能にすることができます。昇格させたレプリカには、昇格をリクエストした時点までにレプリケートされたデータが含まれます。詳細については、「リードレプリカをスタンドアロン DB インスタンスに昇格させる」を参照してください。
RDS for Db2 レプリカの機能と動作の概要については、「DB エンジンのリードレプリカ間の違い」を参照してください。
読み取り専用レプリカとスタンバイレプリカ
Db2 レプリカを作成または変更する場合、次のモードのいずれかにすることができます。
- 読み取り専用モード。
-
これがデフォルトです。HADR は、ソースデータベースからすべてのリードレプリカデータベースに変更を送信し、適用します。読み取り専用レプリカの場合、Db2 環境変数
DB2_HADR_ROSはONに設定されます。レプリカデータベースの読み取りクエリの分離レベルはUncommitted Readです。詳細については、IBM Db2 ドキュメントの「Isolation level on the active standby database」を参照してください。 すべての DB エンジンに適用されるリードレプリカの一般的な情報については、「DB インスタンスのリードレプリカの操作」を参照してください。Db2 HADR の詳細については、IBM Db2 ドキュメントの「High availability disaster recovery (HADR)
」を参照してください。 - スタンバイ
-
スタンバイレプリカでは、Db2 環境変数
DB2_HADR_ROSをOFFに設定し、レプリカデータベースがユーザー接続を受け付けないようにします。スタンバイレプリカの主な用途は、クロスリージョンのディザスタリカバリです。スタンバイレプリカは、読み取り専用のワークロードを処理できません。スタンバイレプリカにはアーカイブログがありません。
1 つのソース DB インスタンスから最大 3 つのリードレプリカを作成できます。同じソース DB インスタンスに対して、読み取り専用 DB レプリカとスタンバイ DB レプリカを組み合わせて作成できます。レプリカを作成したら、レプリカモードを変更できます。詳細については、「RDS for Db2 レプリカモードの変更」を参照してください。
レプリカを作成する前に、すべての要件を満たしていることを確認してください。詳細については、「RDS for Db2 レプリカの要件と考慮事項」を参照してください。
データベースのアクティブ化
Db2 HADR はデータベースレベルで設定します。レプリカを作成すると、RDS が完全に管理する rdsadmin を含むすべての Db2 データベースに HADR が設定されます。Db2 レプリカを作成する前に、すべてのデータベースを明示的にアクティブ化する必要があります。そうしないと、レプリカの作成は失敗し、Amazon RDS でイベントが発生します。DB インスタンスに 1 つ以上のレプリカがある場合、rdsadmin.activate_database または rdsadmin.deactivate_database ストアドプロシージャを使用して DB インスタンスのデータベースをアクティブ化または非アクティブ化することはできません。詳細については、「RDS for Db2 のデータベースのストアドプロシージャ」を参照してください。
HADR 設定
データベースに接続して db2 get db cfg を実行すると、データベースのすべての HADR 設定を表示できます。
アーカイブログの保持
Amazon RDS は、以下の条件が満たされると、プライマリ DB インスタンスからログを消去します。
-
ログは 2 時間以上経過している。
-
アーカイブログに設定した保持時間が経過している。
-
アーカイブログは、すべてのレプリカ DB インスタンスに正常にレプリケートされている。この条件は、同じ AWS リージョン内の DB インスタンスと、クロスリージョンの DB インスタンスの両方に適用されます。
アーカイブログの保持時間の設定については、「rdsadmin.set_archive_log_retention」を参照してください。
Amazon RDS は、各データベースを個別にチェックしてクリーンアップします。データベースが HADR 接続を失った場合や、接続に関する情報が利用できない場合、Amazon RDS はデータベースをスキップし、アーカイブログを消去しません。
Db2 レプリケーション中の停止
リードレプリカを作成すると、Amazon RDS はソース DB インスタンスの DB スナップショットを取得し、レプリケーションを開始します。DB スナップショットオペレーションが始まると、ソース DB インスタンスでごく短時間の I/O 停止が発生します。通常、I/O 停止は約 1 秒続きます。ただし、ソース DB インスタンスがマルチ AZ 配置の場合、ソース DB インスタンスでは I/O 停止が発生しません。マルチ AZ 配置では、スナップショットがセカンダリ DB インスタンスから取得されるためです。
DB スナップショットが Db2 レプリカになります。Amazon RDS は、サービスを中断することなく、ソースデータベースとレプリカに必要なパラメータとアクセス許可を設定します。同様に、レプリカを削除する場合も、停止は発生しません。