将数据库实例添加到主动-主动集群 - Amazon Relational Database Service

将数据库实例添加到主动-主动集群

可以通过还原数据库快照或将数据库实例还原到某个时间点,将数据库实例添加到 Amazon RDS for MySQL 主动-主动集群。一个主动-主动集群最多可以包含九个数据库实例。

将数据库实例恢复到某个时间点时,它通常包含比从数据库快照还原的数据库实例较新的事务。当数据库实例具有较新的事务时,启动复制时需要应用的事务会较少。因此,使用时间点恢复将数据库实例添加到集群通常比从数据库快照还原更快。

使用时间点恢复将数据库实例添加到主动-主动集群

您可以通过对集群中的数据库实例执行时间点恢复,将数据库实例添加到主动-主动集群中。

有关在不同的 AWS 区域将数据库实例恢复到某个时间点的信息,请参阅将自动备份复制到其他 AWS 区域

使用时间点恢复将数据库实例添加到主动-主动集群
  1. 通过对主动-主动集群中的数据库实例执行时间点恢复,创建新的数据库实例。

    您可以对集群中的任何数据库实例执行时间点恢复以创建新的数据库实例。有关说明,请参阅 将 Amazon RDS 的数据库实例还原到指定时间

    重要

    在时间点恢复期间,将新的数据库实例与设置了主动-主动集群参数的数据库参数组相关联。否则,组复制将无法在新的数据库实例上启动。有关参数和每个参数所需设置的信息,请参阅主动-主动集群所需的参数设置

    提示

    如果您在开始时间点恢复之前拍摄数据库实例的快照,则可以减少在新数据库实例上应用事务所需的时间量。

  2. 将数据库实例添加到与主动-主动集群中的一个数据库实例相关联的每个数据库参数组中的 group_replication_group_seeds 参数,包括与新数据库实例关联的数据库参数组。

    有关设置参数的更多信息,请参阅 在 Amazon RDS 中修改数据库参数组中的参数

  3. 在 SQL 客户端中,连接到新的数据库实例,然后调用 mysql.rds_group_replication_set_recovery_channel 存储过程。将 group_replication_user_password 替换为 rdsgrprepladmin 用户的密码。

    call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password');
  4. 使用 SQL 客户端,调用 mysql.rds_group_replication_start 存储过程以开始复制:

    call mysql.rds_group_replication_start(0);

使用数据库快照将数据库实例添加到主动-主动集群

通过在集群中创建数据库实例的数据库快照,然后还原数据库快照,可以将数据库实例添加到主动-主动集群。

有关将快照复制到不同 AWS 区域的信息,请参阅跨区域快照复制的注意事项

使用数据库快照将数据库实例添加到主动-主动集群
  1. 创建主动-主动集群中数据库实例的数据库快照。

    您可以创建集群中任何数据库实例的数据库快照。有关说明,请参阅 为 Amazon RDS 的单可用区数据库实例创建数据库快照

  2. 从数据库快照还原数据库实例。

    在快照还原操作期间,将新的数据库实例与设置了主动-主动集群参数的数据库参数组相关联。有关参数和每个参数所需设置的信息,请参阅主动-主动集群所需的参数设置

    有关从数据库快照还原数据库实例的信息,请参阅还原到数据库实例

  3. 将数据库实例添加到与主动-主动集群中的一个数据库实例相关联的每个数据库参数组中的 group_replication_group_seeds 参数,包括与新数据库实例关联的数据库参数组。

    有关设置参数的更多信息,请参阅 在 Amazon RDS 中修改数据库参数组中的参数

  4. 在 SQL 客户端中,连接到新的数据库实例,然后调用 mysql.rds_group_replication_set_recovery_channel 存储过程。将 group_replication_user_password 替换为 rdsgrprepladmin 用户的密码。

    call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password');
  5. 使用 SQL 客户端,调用 mysql.rds_group_replication_start 存储过程以开始复制:

    call mysql.rds_group_replication_start(0);