组复制官方翻译八、Frequently Asked Questions

简介: https://dev.mysql.com/doc/refman/8.0/en/group-replication-frequently-asked-questions.html一、MGR的成员数量最大是多少最大9个二、group中的成员是如何连接的他们直接是通过peer-to-peer ...

https://dev.mysql.com/doc/refman/8.0/en/group-replication-frequently-asked-questions.html

一、MGR的成员数量最大是多少

最大9个

二、group中的成员是如何连接的

他们直接是通过peer-to-peer TCP连接,主要用作内部交流和信息传递
通过group_replication_local_address 可以设置相关的地址

三、group_replication_bootstrap_group主要用作什么用途

bootstrap flag,主要用作创建一个group,然后扮演一个初始化server的角色
第二个成员加入到组,需要问bootstrap server来动态调整配置,以便自己能够顺利加入该组

一个成员bootstrap一个组的场景大概2个:

  1. 第一次初始化创建group
  2. shutdown,然后重启整个group

四、为了恢复,如何设置credentials

提前配置一个GR的恢复通道credentials,使用CHANGE MASTER TO 语句

五、可以使用MGR来scale-out我的写压力么

a)并不是直接的扩展方式,因为MGR的每一个成员都有完整的数据copy

b)但是,其他server并不是做完全一样的写动作,因为MGR通过ROW模式复制,其他server只需要apply row即可,并不是re-executed事务了,因此会快且压力小很多

c)更进一步讲,row-based应用都是经过压缩过的,可以减少很多IO动作,相比master上的执行压力会小很多的

d)总结,你可以scale-out写,在没有写冲突事务的时候在多台服务器上执行事务是可以做到scale-out的。

六、相比普通复制,在相同的负载下,MGR需要更多的网络带宽和cpu计算资源吗

是会有一些额外的压力产生,因为MGR需要不断的沟通协作来保证同步的目的,但是很难计算出高出多少资源

七、可以在广域网部署MGR吗

可以,但是要保证他们的可靠和合适的网络性能
低延迟、高吞吐是MGR的基本配备条件

如果网络带宽是问题,可以使用 Section 18.10.7.2, “Message Compression” 方法来降低带宽的所需
但是如果网络丢包,导致的数据重传会严重影响性能

八、如果网络临时有问题,组成员会自动重新加入group吗

这取决于是什么网络问题
如果网络问题是短暂的,瞬间的,那么MGR的错误检测机制根本还没来得及探测到此问题,那么该成员是不会被移除出组的
如果是长时间的问题,那么错误检测机制最终会认为它除了问题,会将此server移除出组

一旦移除出组,你就需要让他重新加入一次,换句话说,你需要手工来处理,或用脚本来自动处理

九、什么时候成员会被排除(excluded)在外

如果一个server变成了孤岛,其他成员会从组配置中将其移除出组
一般这种情况发生在 server挂了,或网络disconnect了

在指定的timeout后,这个错误被检测出来,然后一个新的没有该成员的配置会重新生成

十、如果一个节点严重延迟,会产生什么问题

没有一个很好的策略来自动判断什么时候去驱逐一个成员
你需要找到为什么它会延迟,并解决它,或移除它
否则,当一个server慢到触发流控,然后整个group都会变的慢下来
流控可以根据你喜好来配置

十一、有没有一个特殊的成员来负责触发重新更新配置来踢出某个member

没有。
每个member都是一样的,你无法控制和设置

十二、是否可以用MGR来sharding

无法对MRG成员进行sharding,但是你可以设计,以MGR作为sharding的一个分片,即: MGR1 是一个分片,MGR2是另外一个分片

十三、是否可以在selinux和iptables环境下使用MGR

可以,需要额外配置和过滤

十四、作为组成员,如何恢复relay-log in replication channel

STOP GROUP_REPLICATION, START GROUP_REPLICATION,这样MGR会再次创建一个group_replication_applier 通道

十五、为什么MGR使用2个绑定地址

MGR使用两个绑定地址,主要是为了区分 SQL地址(业务应用ip来连接server) 和 group_replication_local_address (成员内部通信)
主要是为了隔离和安全

十六、如何找到primary

如果是single-primary,你可以使用Section 18.4.1.3, “Finding the Primary”的方法,轻松找到primary

  • 方法一、
sql> SELECT MEMBER_HOST, MEMBER_ROLE FROM performance_schema.replication_group_members;
+-------------------------+-------------+
| MEMBER_HOST             | MEMBER_ROLE |
+-------------------------+-------------+
| remote1.example.com     | PRIMARY     |
| remote2.example.com     | SECONDARY   |
| remote3.example.com     | SECONDARY   |
+-------------------------+-------------+
  • 方法二、
mysql> SHOW STATUS LIKE 'group_replication_primary_member'
目录
相关文章
|
存储 Ubuntu Linux
【Matter】Matter 环境构建参考文档
【Matter】Matter 环境构建参考文档
385 0
编译原理 first集 follow集 实例 解析
编译原理 first集 follow集 实例 解析
139 0
编译原理 first集 follow集 实例 解析
|
SQL 关系型数据库 MySQL
组复制官方翻译九、Group Replication Technical Details
https://dev.mysql.com/doc/refman/8.0/en/group-replication-technical-details.html 这一章主要描述MGR的更多细节 18.
1762 0
|
SQL 存储 关系型数据库
组复制官方翻译七、Requirements and Limitations
https://dev.mysql.com/doc/refman/8.0/en/group-replication-requirements-and-limitations.html 关于Group Replication System Variables这一节没有讲,主要是变量属于工具类,需要查看的时候去搜一下即可 https://dev.
1424 0
|
关系型数据库 MySQL
组复制官方翻译六、Upgrading Group Replication
https://dev.mysql.com/doc/refman/8.0/en/group-replication-upgrade.html 这个章节主要描述升级MGR的计划基本的升级MGR成员的方法基本跟单独的实例升级一样(可参考 Section 2.
1548 0
|
关系型数据库 MySQL
组复制官方翻译三、Getting Started
https://dev.mysql.com/doc/refman/8.0/en/group-replication-getting-started.html MGR 作为一个Server插件提供支持的,每个group的server都需要配置和加载这个插件这一章主要教大家在三节点的MGR环境下,怎么一步步搭建起来的 18.
1382 0
|
监控
组复制官方翻译四、Monitoring Group Replication
https://dev.mysql.com/doc/refman/8.0/en/group-replication-monitoring.html 使用Perfomance Schema来监控MGR MGR主要添加了这两个表 performance_schema.
1625 0
|
监控 安全 关系型数据库
组复制官方翻译一、Group Replication
https://dev.mysql.com/doc/refman/8.0/en/group-replication.html 目录 18.1 Group Replication Background 18.
1673 0
|
网络协议 网络安全
组复制官方翻译五、Group Replication Security
https://dev.mysql.com/doc/refman/8.0/en/group-replication-security.html 18.5.1 IP Address Whitelisting MGR有个配置项可以决定哪些server可以被GR接受,它就是group_replicati...
1510 0
组复制官方翻译二、Group Replication Background
https://dev.mysql.com/doc/refman/8.0/en/group-replication-background.html 这一章主要描述一些组复制的背景 构建一个容错系统最常用的方法就是让组件冗余,换句话说就是组件即便被移除掉,整个系统还是能够正常对外提供服务这无疑在不同...
1529 0