服务器实例可以处于多种状态。如果服务器通信正常,则所有服务器都报告相同的状态。但是,如果存在网络分区或服务器离开组,则可能会报告不同的信息,具体取决于查询的服务器。如果服务器离开了组,则它无法报告有关其他服务器状态的更新信息。如果有一个分区,这样 quorum 丢失,服务器之间就无法协调。因此,他们无法猜测不同服务器的状态。因此,他们没有猜测它们的状态,而是报告某些服务器无法访问。
表 17.1 服务器状态
场地 |
描述 |
组同步 |
---|---|---|
|
该成员已准备好充当功能齐全的组成员,这意味着客户端可以连接并开始执行事务。 |
是的 |
|
该成员正在成为该组的活跃成员,目前正在进行恢复过程,从捐赠者那里接收状态信息。 |
不 |
|
插件已加载,但成员不属于任何组。 |
不 |
|
成员的状态。只要在恢复阶段或应用更改时出现错误,服务器就会进入此状态。 |
不 |
|
每当本地故障检测器怀疑给定服务器无法访问时,例如因为它非自愿断开连接,它会将服务器的状态显示为 |
不 |
实例进入ERROR
状态后,该
super_read_only
选项将设置为ON
。要离开该ERROR
状态,您必须手动配置实例
super_read_only=OFF
。
请注意,Group Replication不是 同步的,但最终是同步的。更准确地说,事务以相同的顺序交付给所有组成员,但它们的执行不是同步的,这意味着在事务被接受提交后,每个成员都按照自己的节奏提交。