アクティブ/アクティブクラスターの管理 - Amazon Relational Database Service

アクティブ/アクティブクラスターの管理

以下のストアドプロシージャは、RDS for MySQL のアクティブ/アクティブクラスターを設定および管理します。詳細については、「RDS for MySQL のアクティブ/アクティブクラスターの設定」を参照してください。

これらのストアドプロシージャは、バージョン 8.0.35 以降のマイナーバージョンを実行している RDS for MySQL DB インスタンスでのみ使用できます。

mysql.rds_group_replication_advance_gtid

現在の DB インスタンスにプレースホルダー GTID を作成します。

Syntax

CALL mysql.rds_group_replication_advance_gtid( begin_id , end_id , server_uuid );

パラメータ

begin_id

作成する開始トランザクション ID。

end_id

作成する終了トランザクション ID。

begin_id

作成するトランザクションの group_replication_group_namegroup_replication_group_name は、DB インスタンスに関連付けられた DB パラメータグループの UUID として指定されます。

使用に関する注意事項

アクティブ/アクティブクラスターでは、DB インスタンスがグループに参加するには、新しい DB インスタンスで実行されるすべての GTID トランザクションが、クラスター内の他のメンバーに存在する必要があります。通常とは異なる場合、インスタンスをグループに結合する前にトランザクションが実行されると、新しい DB インスタンスで、より多くのトランザクションが発生する可能性があります。この場合、既存のトランザクションを削除することはできませんが、この手順を使用して、グループ内の他の DB インスタンスに対応するプレースホルダー GTID を作成できます。その前に、トランザクションがレプリケートされたデータ に影響を与えないことを確認します。

この手順を呼び出すと、server_uuid:begin_id-end_id の GTID トランザクションが空のコンテンツで作成されます。レプリケーションの問題を回避するには、この手順を他の条件で使用しないでください。

重要

アクティブ/アクティブクラスターが正常に機能している場合は、この手順を呼び出さないでください。この手順は、作成するトランザクションの考えられる結果を理解しない限り、呼び出さないでください。この手順を呼び出すと、データが矛盾する可能性があります。

次の例は、現在の DB インスタンスにプレースホルダー GTID を作成します。

CALL mysql.rds_group_replication_advance_gtid(5, 6, '11111111-2222-3333-4444-555555555555');

mysql.rds_group_replication_create_user

DB インスタンスにグループレプリケーション用のレプリケーションユーザー rdsgrprepladmin を作成します。

Syntax

CALL mysql.rds_group_replication_create_user( replication_user_password );

パラメータ

replication_user_password

レプリケーションユーザー rdsgrprepladmin のパスワード。

使用に関する注意事項

  • レプリケーションユーザー rdsgrprepladmin のパスワードは、アクティブ/アクティブクラスター内のすべての DB インスタンスで同じである必要があります。

  • rdsgrprepladmin ユーザー名は、グループレプリケーション接続用に予約されています。マスターユーザーを含め、他のユーザーがこのユーザー名を持つことはできません。

次の例は、DB インスタンスにグループレプリケーション用のレプリケーションユーザー rdsgrprepladmin を作成します。

CALL mysql.rds_group_replication_create_user('password');

mysql.rds_group_replication_set_recovery_channel

アクティブ/アクティブクラスターの group_replication_recovery チャネルを設定します。この手順では、予約済み rdsgrprepladmin ユーザーを使用してチャネルを設定します。

Syntax

CALL mysql.rds_group_replication_set_recovery_channel( replication_user_password);

パラメータ

replication_user_password

レプリケーションユーザー rdsgrprepladmin のパスワード。

使用に関する注意事項

レプリケーションユーザー rdsgrprepladmin のパスワードは、アクティブ/アクティブクラスター内のすべての DB インスタンスで同じである必要があります。mysql.rds_group_replication_create_user の呼び出しは、パスワードを指定します。

次の例は、アクティブ/アクティブクラスターの group_replication_recovery チャネルを設定します。

CALL mysql.rds_group_replication_set_recovery_channel('password');

mysql.rds_group_replication_start

現在の DB インスタンスでグループレプリケーションを開始します。

Syntax

CALL mysql.rds_group_replication_start( bootstrap );

パラメータ

bootstrap

新しいグループを初期化するか、既存のグループに参加するかを指定する値。1 は、現在の DB インスタンスで新しいグループを初期化します。0 は、DB インスタンスに関連付けられた DB パラメータグループの group_replication_group_seeds パラメータで定義されたエンドポイントに接続することで、現在の DB インスタンスを既存のグループに結合します。

次の例は、現在の DB インスタンスで新しいグループを初期化します。

CALL mysql.rds_group_replication_start(1);

mysql.rds_group_replication_stop

現在の DB インスタンスでのグループレプリケーションを停止します。

Syntax

CALL mysql.rds_group_replication_stop();

使用に関する注意事項

DB インスタンスでのレプリケーションを停止しても、アクティブ/アクティブクラスター内の他の DB インスタンスには影響しません。