アクティブ/アクティブクラスターの管理
以下のストアドプロシージャは、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_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
を作成します。
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 インスタンスには影響しません。