§ MGR 地理标签
GreatSQL中新增地理标签特性,可以提升多机房架构数据可靠性。
可以对每个节点设置地理标签,主要用于解决多机房数据同步的问题。
新增选项 group_replication_zone_id
,用于标记节点地理标签。该选项值支持范围 0 ~ 8,默认值为0。
当集群中各节点该选项值设置为不同的时候,就被认定为设置了不同的地理标签。有个例外情况是,在 仲裁节点 中无需额外设置地理标签,保持使用默认值即可。
在同城多机房部署方案中,同一个机房的节点可以设置相同的数值,另一个机房里的节点设置另一个不同的数值,这样在事务提交时会要求每组 group_replication_zone_id
中至少有个节点确认事务,然后才能继续处理下一个事务。这就可以确保每个机房的某个节点里,总有最新的事务。
- 新增选项
group_replication_zone_id
,用于定义节点所属地理标签ID
System Variable Name | group_replication_zone_id |
---|---|
Variable Scope | Global |
Dynamic Variable | Yes |
Type | Interger |
Permitted Values | [0 - 8] |
Default | 0 |
Description | 设置MGR各节点不同的地理标签,主要用于解决多机房数据同步的问题。 修改完该选项值之后,要重启MGR线程才能生效。 |
- 新增选项
group_replication_zone_id_sync_mode
(类型:布尔型,可选值:ON/OFF,默认值:ON)。
System Variable Name | group_replication_zone_id_sync_mode |
---|---|
Variable Scope | Global |
Dynamic Variable | Yes |
Type | Boolean |
Permitted Values | ON/OFF |
Default | ON |
Description | 该参数用于控制 MGR 中,不同机房里的节点的数据同步行为模式 |
该参数用于控制 MGR 中,不同机房里的节点的数据同步行为模式。需要保证 MGR 中除了仲裁节点之外的所有节点配置相同的值,否则节点无法加入 MGR。
在 MGR 运行过程中,不允许更改选项值;需要先停止 MGR 服务,修改后才能再启动。
当选项设置为 ON 时,如果 MGR 中存在多个 zone id(地理标签),则要求在满足 Paxos 多数派协议的基础上,需要保证每个 zone id 中最少有一个节点同步到最新数据。
如果设置了 group_replication_zone_id
启用地理标签功能,需要保证所有节点都同步数据。但当 group_replication_zone_id_sync_mode = OFF
时,地理标签就只是个标记,不再保证各节点都同步数据。
扫码关注微信公众号