我们可以使用MySQL performance shcema
来监控active-active replication
。这些performance schema表格
显示了与group replication
相关的特定信息。
连接到任何一个 RDS for MySQL实例:
mysql -u $DBUSER -p$DBPASS -h [endpoint]
通过运行以下查询确认group replication
在所有DB实例上都在运行。:
select * from performance_schema.replication_group_members;
观察到所有DB实例的MEMBER_STATE都是ONLINE,并且它们的MEMBER_ROLE列显示它们都是PRIMARY。因此,这组RDS for MySQL实例正在多主模式下运行。
要监控复制状态,请运行以下查询。performance_schema.replication_group_member_stats
表提供了与认证过程相关的组级信息,以及每replication group
成员接收和发起的事务的统计信息。
select * from performance_schema.replication_group_member_stats\G
观察到所有三个RDS for MySQL实例都属于同一个recovery channel CHANNEL_NAME: group_replication_applier。这表明所有DB实例都在同一个active-active replication group
中。
这些列对于监控连接在组中的成员的性能很重要:
假设组中的一个成员总是报告其队列中有大量的事务,而其他成员则没有。这意味着该成员延迟了,无法与组中的其他成员保持同步。基于这些信息,我们可以决定是将该成员从组中移除,还是延迟其他成员的事务处理,以减少排队的事务数量。这些信息还可以帮助我们决定如何调整replication group
的流量控制
。
三台实例中的一台发生了重启,在重启结束后,它也能再加入到active-active replication group
假如某台实例下线,后面又重新加入了replication group
, 那么中间缺失的数据也会被同步过来