Amazon RDS for Db2 のレプリカの使用 - Amazon Relational Database Service

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_ROSON に設定されます。レプリカデータベースの読み取りクエリの分離レベルは 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_ROSOFF に設定し、レプリカデータベースがユーザー接続を受け付けないようにします。スタンバイレプリカの主な用途は、クロスリージョンのディザスタリカバリです。

スタンバイレプリカは、読み取り専用のワークロードを処理できません。スタンバイレプリカにはアーカイブログがありません。

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