GTID ベースレプリケーションを使用する
以下では、複数の Amazon RDS for MySQL DB インスタンス間において、バイナリログ (binlog) レプリケーションでグローバルトランザクション ID (GTID) を使用する方法について説明します。
binlog レプリケーションを使用する際に MySQL での GTID ベースのレプリケーションに慣れていない場合は、MySQL ドキュメントの「Replication with global transaction identifiers
GTID ベースのレプリケーションは、次のバージョンでサポートされています。
-
すべての RDS for MySQL 8.4 バージョン
-
すべての RDS for MySQL 8.0 バージョン
-
すべての RDS for MySQL 5.7 バージョン
レプリケーション設定のすべての MySQL DB インスタンスがこのバージョン要件を満たしている必要があります。
トピック
グローバルトランザクション ID (GTID) の概要
グローバルトランザクション ID (GTID) はコミットされた MySQL トランザクションに対して生成される一意の ID です。GTID を使用することで、簡単に binlog をレプリケーションおよびトラブルシューティングできるようになります。
MySQL では、binlog レプリケーションに 2 種類のトランザクションを使用します。
-
GTID トランザクション - GTID によって識別されるトランザクション。
-
匿名トランザクション - GTID が割り当てられていないトランザクション。
レプリケーション設定では、GTID はすべての DB インスタンスで一意です。GTID を使用すると、ログファイルの位置を参照する必要がないため、GTID はレプリケーション設定を簡素化します。GTID はまた、レプリケートされたトランザクションを追跡し、出典インスタンスとレプリカが一致しているかどうかの判断を容易にします。
GTID ベースのレプリケーションを使用して、RDS for MySQL リードレプリカでデータをレプリケートできます。新しいリードレプリカの作成時に GTID ベースのレプリケーションを設定するか、GTID ベースのレプリケーションを使用するように既存のリードレプリカを変換することができます。
また、RDS for MySQL を使用し、遅延レプリケーション設定で GTID ベースのレプリケーションを使用することもできます。詳細については、「MySQL での遅延レプリケーションの設定」を参照してください。
GTID ベースレプリケーションのパラメータ
以下のパラメータを使用して、GTID ベースレプリケーションを設定します。
Parameter | 有効な値 | 説明 |
---|---|---|
|
|
|
|
|
|
注記
AWS Management Console では、gtid_mode
パラメータは gtid-mode
のように表示されます。
GTID ベースのレプリケーションでは、DB インスタンスまたはリードレプリカのパラメータグループでこれらの設定を使用します。
-
ON
とON_PERMISSIVE
は、RDS DB インスタンスからの送信レプリケーションにのみ適用されます。いずれの値でも、RDS DB インスタンスは、レプリケートされるトランザクションに GTID を使用します。ON
の場合は、ターゲットデータベースも GTID ベースのレプリケーションを使用します。ON_PERMISSIVE
の場合、GTID ベースのレプリケーションは、ターゲットデータベースではオプションになります。 -
OFF_PERMISSIVE
が設定された場合、これは、RDS DB インスタンスがソースデータベースからの受信レプリケーションを受け入れることができることを意味します。これは、ソースデータベースで GTID ベースのレプリケーションが使用されているかどうかにかかわらず実行できます。 -
OFF
が設定された場合、これは、RDS DB インスタンスが、GTID ベースのレプリケーションを使用しないソースデータベースからの受信レプリケーションのみを受け入れることができることを意味します。
パラメータグループの詳細については、「Amazon RDS のパラメータグループ」を参照してください。