管理主动-主动集群
以下存储过程用于设置和管理 RDS for MySQL 主动-主动集群。有关更多信息,请参阅为 RDS for MySQL 配置主动-主动集群。
这些存储过程仅适用于运行 8.0.35 及更高次要版本的 RDS for MySQL 数据库实例。
主题
mysql.rds_group_replication_advance_gtid
在当前数据库实例上创建占位符 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
指定为 UUID。
使用说明
在主动-主动集群中,要使数据库实例加入组,在新数据库实例上执行的所有 GTID 事务都必须存在于集群中的其它成员上。在不寻常的情况下,在将实例加入组之前执行事务时,新的数据库实例可能会有更多的事务。在这种情况下,您无法移除任何现有事务,但您可以使用此过程在组中的其它数据库实例上创建相应的占位符 GTID。在执行此操作之前,请验证事务不会影响复制的数据。
当您调用此过程时,将创建 server_uuid:begin_id-end_id
的 GTID 事务,但内容为空。为避免复制问题,请勿在任何其它条件下使用此过程。
重要
避免在主动-主动集群运行正常时调用此过程。除非您了解正在创建的事务可能产生的后果,否则不要调用此过程。调用此过程可能会导致数据不一致。
示例
以下示例在当前数据库实例上创建占位符 GTID:
CALL mysql.rds_group_replication_advance_gtid(
5
,6
, '11111111-2222-3333-4444-555555555555
');
mysql.rds_group_replication_create_user
为数据库实例上的组复制创建复制用户 rdsgrprepladmin
。
语法
CALL mysql.rds_group_replication_create_user(
replication_user_password
);
参数
-
replication_user_password
-
复制用户
rdsgrprepladmin
的密码。
使用说明
-
在主动-主动集群中的所有数据库实例上,复制用户
rdsgrprepladmin
的密码必须相同。 -
rdsgrprepladmin
用户名保留用于组复制连接。任何其他用户(包括主用户)都不能拥有此用户名。
示例
以下示例为数据库实例上的组复制创建复制用户 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
的密码必须相同。调用 mysql.rds_group_replication_create_user
可指定密码。
示例
以下示例为主动-主动集群设置 group_replication_recovery
通道:
CALL mysql.rds_group_replication_set_recovery_channel('
password
');
mysql.rds_group_replication_start
在当前数据库实例上启动组复制。
语法
CALL mysql.rds_group_replication_start(
bootstrap
);
参数
-
bootstrap
-
一个值,它指定是初始化新组还是加入现有组。值为
1
时,将使用当前数据库实例初始化新组。值为0
时,将通过连接到在与当前数据库实例关联的数据库参数组的group_replication_group_seeds
参数中定义的端点,将该数据库实例加入到现有组。
示例
以下示例使用当前数据库实例初始化新组:
CALL mysql.rds_group_replication_start(
1
);
mysql.rds_group_replication_stop
在当前数据库实例上停止组复制。
语法
CALL mysql.rds_group_replication_stop();
使用说明
当您在数据库实例上停止复制时,它不会影响主动-主动集群中的任何其它数据库实例。