GTID ベースレプリケーションを使用する - Amazon Relational Database Service

GTID ベースレプリケーションを使用する

以下では、複数の Amazon RDS for MySQL DB インスタンス間において、バイナリログ (binlog) レプリケーションでグローバルトランザクション ID (GTID) を使用する方法について説明します。

binlog レプリケーションを使用する際に MySQL での GTID ベースのレプリケーションに慣れていない場合は、MySQL ドキュメントの「Replication with global transaction identifiers」を参照してください。

GTID ベースのレプリケーションは、すべての RDS for MySQL 5.7 バージョンおよび RDS for MySQL 8.0.26 以降の MySQL 8.0 バージョンでサポートされています。レプリケーション設定のすべての 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 有効な値 説明

gtid_mode

OFF, OFF_PERMISSIVE, ON_PERMISSIVE, ON

OFF は新しいトランザクションが匿名トランザクション (つまり GTID を持たない) であることを指定し、トランザクションは匿名でレプリケートされる必要があります。

OFF_PERMISSIVE は新しいトランザクションが匿名トランザクションであることを指定しますが、すべてのトランザクションをレプリケートできます。

ON_PERMISSIVE は新しいトランザクションが GTID トランザクションであることを指定しますが、すべてのトランザクションをレプリケートできます。

ON は新しいトランザクションが GTID トランザクションであることを指定し、トランザクションは複製される GTID トランザクションでなければなりません。

enforce_gtid_consistency

OFF, ON, WARN

OFF はトランザクションが GTID の整合性に違反することを許可します。

ON はトランザクションが GTID の整合性に違反することを防ぎます。

WARN は、トランザクションが GTID の整合性に違反することを許可しますが、違反が発生すると警告を生成します。

注記

AWS Management Console では、gtid_mode パラメータは gtid-mode のように表示されます。

GTID ベースのレプリケーションでは、DB インスタンスまたはリードレプリカのパラメータグループでこれらの設定を使用します。

  • ONON_PERMISSIVE は、RDS DB インスタンスからの送信レプリケーションにのみ適用されます。いずれの値でも、RDS DB インスタンスは、レプリケートされるトランザクションに GTID を使用します。ON の場合は、ターゲットデータベースも GTID ベースのレプリケーションを使用します。ON_PERMISSIVE の場合、GTID ベースのレプリケーションは、ターゲットデータベースではオプションになります。

  • OFF_PERMISSIVE が設定された場合、これは、RDS DB インスタンスがソースデータベースからの受信レプリケーションを受け入れることができることを意味します。これは、ソースデータベースで GTID ベースのレプリケーションが使用されているかどうかにかかわらず実行できます。

  • OFF が設定された場合、これは、RDS DB インスタンスが、GTID ベースのレプリケーションを使用しないソースデータベースからの受信レプリケーションのみを受け入れることができることを意味します。

パラメータグループの詳細については、「Amazon RDS のパラメータグループ」を参照してください。