アクティブ/アクティブクラスターの管理
以下のストアドプロシージャは、RDS for MySQL のアクティブ/アクティブクラスターを設定および管理します。詳細については、「RDS for MySQL のアクティブ/アクティブクラスターの設定」を参照してください。
これらのストアドプロシージャは、次のバージョンを実行している RDS for MySQL DB インスタンスでのみ使用できます。
-
すべての MySQL 8.4 バージョン
-
MySQL 8.0.35 以降のマイナーバージョン
トピック
mysql.rds_group_replication_advance_gtid
現在の DB インスタンスにプレースホルダー GTID を作成します。
構文
CALL mysql.rds_group_replication_advance_gtid(begin_id,end_id,server_uuid);
パラメータ
-
begin_id -
作成する開始トランザクション ID。
-
end_id -
作成する終了トランザクション ID。
-
begin_id -
作成するトランザクションの
group_replication_group_name。group_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 を作成します。
構文
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 ユーザーを使用してチャネルを設定します。
構文
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 インスタンスでグループレプリケーションを開始します。
構文
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 インスタンスでのグループレプリケーションを停止します。
構文
CALL mysql.rds_group_replication_stop();
使用に関する注意事項
DB インスタンスでのレプリケーションを停止しても、アクティブ/アクティブクラスター内の他の DB インスタンスには影響しません。