管理主动-主动集群 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

管理主动-主动集群

以下存储过程用于设置和管理 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();

使用说明

当您在数据库实例上停止复制时,它不会影响主动-主动集群中的任何其它数据库实例。