使用性能模式(performance schema)表监控组复制,这里假设性能模式开启。复制组增加下列表:

1)performance_schema.replication_group_member_stats

2)performance_schema.replication_group_members

下列性能模式复制表也显示有关组复制的信息:

1)performance_schema.replication_connection_status

2)performance_schema.replication_applier_status

复制组插件创建的复制通道命名为:

1)group_replication_recovery:该通道用于分布式恢复阶段相关的复制改变。

2)group_replication_applier :该通道用于从组传入的更改。其为用于用于应用从组直接传入的事务。

下列部分描述这些表中每张表的可用信息。

一.Replication_group_member_stats

复制组内每个成员认证和应用组收到的事务。有关认证和应用过程的统计信息对理解应用队列如何增长、发生了多少冲突、检查了多少事务、每个地方提交的哪些事务等,都是有用的。

performance_schema.replication_group_member_stats表提供认证过程相关的信息。这些信息为复制组成员的所有服务器实例共享,因此,所有组成员的信息能在任何成员上查询。

表1-1 replication_group_member_stats

字段

描述

Channel_name

组复制通道的名字。

Member_id

成员服务器的UUID。每个组成员会有不同值。因为每个成员都是唯一的,因此,其也用作一个键。

Count_transactions_in_queue

未决冲突探测检查队列中的事务数。一旦事务进行冲突检查,且通过该检查,其将被放入应用队列。

Count_transactions_checked

已经进行冲突检查的事务数。

Count_conflicts_detected

未通过冲突探测检查的事务数。

Count_transactions_rows_validating

冲突探测数据库的大小(对每个事务进行认证)。

Transactions_committed_all_members

已在复制组所有成员成功提交的事务。其按照固定时间间隔更新。

Last_conflict_free_transaction

最后检查的无冲突事务的事务鉴定符。

这些字段对监控组内成员的性能是重要的。例如:假设一个组成员延后了,且不能追上组内其他成员。这种情况下,您也许会在队列中看到大量的事务。根据这些信息,您能决定从组内移去该成员,或者,为了减少队列中的事务数,延迟组内其他成员上事务的处理。这些信息有助于您决定如何调整组复制插件的流控。

 

二.Replication_group_members

该表用于监控目前视图中跟踪的不同服务器实例的状态,或换句话说,作为组的部分,因此,其通过成员服务进行跟踪。

表2-1 replication_group_members

字段

描述

Channel_name

复制组通道的名字。

Member_id

成员服务器的UUID。

Member_host

组成员的网络地址。

Member_port

组成员监听的mysql连接端口。

Member_state

组成员的目前状态(其能为ONLINE,ERROR,RECOVERING,OFFLIN或unreachable).

 

三.Replication_connection_status

当连接到一个组时,该表中的某些字段显示组复相关的信息。例如:已经从组收到和排队应用的事务(relay log)。

表3-1 replication_connection_status

字段

描述

Channel_name

组复制通道的名字。

Group_name

显示组名字。其总是有效的UUID。

Source_UUID

显示组标示符。其与组名字类似,且其用作组复制期间产生的所有事务的UUID。

Service_state

显示一个成员是否为组成员。服务状态可能的值为(ON, OFF 和CONNECTING)。

Received_transaction_set

已被该组成员接收的该GTID集中的事务。

 

四.Replication_applier_status

组复制相关通道和线程的状态也能通过该常规表replication_applier_status进行观察。如果有很多不同的工作线程(worker threads)正在应用事务,那么,该工作线程表也能用于监控每个工作线程正在做什么。

表4-1 replication_applier_status

字段

描述

Channel_name

组复制通道的名字。

Service_state

显示应用服务为ON或OFF。

Remaining_delay

显示是否配置了应用延迟。

Count_transactions_retries

应用事务时执行的重试次数。

Received_transaction_set

已被该组成员接收的该GTID集中的事务。

 

五.Group Replication Server States

无论何时视图更新,表replication_group_members都将会变更,例如:当组配置动态变更时。此时,服务器会交换其元数据以进行它们间的同步,并继续一起合作。

服务器实例可以处于几个状态。如果服务器正常通信,所有服务器都将报告同样状态。但是,如果发生网络分区,或服务器离开组,那么,可能会报告不同的信息,主要看查询哪个服务器。注意,如果服务器已经离开组,那么,很明显,其不能报告有关其他服务器状态的变更信息。如果发生网络分区,像失去法定票数,服务不能自己进行协调。结果,它们不能猜到不同服务器的状态。所以,不是猜服务器的状态,而是报告某些服务器不可到达。

表5-1 Server State

字段

描述

ONLINE

成员准备作为功能正常的组成员提供服务,意味着客户端能连接且开始执行事务。

Yes

RECOVERING

成员处于变为组活动成员的过程中,且目前正经历恢复过程,从捐赠成员接收状态信息。

No

OFFLINE

组件被加载,但该成员并不属于任何组。

No

ERROR

成员的状态。无论何时恢复阶段或应用变更时发生错误,服务器将进入该状态。

No

UNREACHABLE

无论何时本地失败探测器怀疑一个指定服务器不可到达,因为其也许发生了崩溃或非自愿断开了,其将显示服务器状态为’unreachable’。

No

 

--注:

1)一旦一个实例进入ERROR状态,super_read_only选项将被设置为ON。为了离开该ERROR,您必须手工配置该实例为super_read_only=OFF。

注意,组复制不是同步的,而是最终同步。更精确额的讲,事务按照同样的顺序传送给所有组成员,但它们的执行并非同步的,意味着事务被接收后,每个成员按照自己的步伐提交。