零、MGR限制
1、隔离级别是RC
2、innodb表,包含主键
3、不能使用大事务,可以通过参数进行限制
4、不支持复制过滤
5、建议局域网配置
5、节点配置须知
1、开启binlog/relay-log
2、开启并行复制
3、开启GTID
4、注意加入白名单
一、版本切换
-
版本优先级:
1、同版本->同版本 使用udf函数即可
2、高版本->低版本 使用udf函数即可
3、高版本(不能切换
1、设置新版本目标主权重级别
2、设置原主read_only super_read_only=1 然后stop group_replaction -
权重排序:
如果版本相同,选择权重,如果权重再相同,比较memeber_i
. 一旦集群故障的节点超过阈值,整个集群就会被挂起,成为只读状态。
二、集群节点状态
- ONLINE:节点可正常提供服务。
- RECOVERING:节点正在从其他节点恢复数据(也可能处于错误状态)。
- OFFLINE:GR插件已加载,但节点不属于任何一个GR组。
- ERROR:节点在recovery阶段或从其他节点同步状态中出现错误。
- UNREACHABLE:节点处于不可达状态,无法与之网络通讯。
三、大事务对MGR的影响
- 生成阶段:大事务在主节点执行时间长,影响行数多,生成大量writeset和binlog,占用服务器资源。
- 传输阶段:影响节点间网络传输性能,可能造成网络抖动和节点脱离风险。
- 事务冲突验证阶段:消耗节点大量资源。
- 事务应用阶段:消耗资源并可能造成后续事务无法应用,导致延时和集群性能下降。
四、节点加入失败情况
- 新节点本身已有事务,与接收到的发生冲突。
- 新节点网段不在ip白名单(allowlist)内。
- 新节点需要的全量日志在主库已被删除。
-
原主切换后重新加入集群。
5、 配置错误。 **
6、版本不兼容。**
五、MGR监控要点
确实,对于MGR(MySQL Group Replication)的监控,除了概述的监控要点外,了解具体的监控语句也是非常重要的。以下是一些建议的具体监控语句,这些语句可以帮助你更好地了解集群的状态和性能:
1. 服务进程监控
-- 检查MySQL服务状态(这通常需要在操作系统层面进行,例如使用systemctl或service命令)
对于服务进程的监控,通常不是通过SQL语句来完成的,而是依赖于操作系统的服务管理工具。
2. 只读状态监控
SHOW GLOBAL VARIABLES LIKE 'read_only';
这个语句将显示当前MySQL实例是否设置为只读模式。
3. 节点状态监控
-- 查看当前节点的状态
SELECT * FROM performance_schema.replication_group_members;
-- 或者使用以下命令查看更详细的状态
SHOW GLOBAL STATUS LIKE 'group_replication_primary_member';
这些命令将显示集群中所有成员的状态,以及哪个成员是当前的主节点。
4. 集群可用性监控
集群的可用性通常通过监控各个节点的状态和通信情况来间接反映。没有直接的SQL语句可以全面反映集群的可用性,但可以通过组合多个监控指标(如节点状态、网络连通性等)来评估。
5. 非写节点的验证等待队列、应用等待队列监控
-- 查看等待验证的事务队列大小
SELECT * FROM performance_schema.replication_group_member_stats WHERE member_id = '<member_id>' AND variable_name = 'TRANSACTIONS_CERTIFIED_BEFORE_APPLIED';
-- 查看等待应用的事务队列大小
SELECT * FROM performance_schema.replication_group_member_stats WHERE member_id = '<member_id>' AND variable_name IN ('TRANSACTIONS_LOCAL_CACHE', 'TRANSACTIONS_APPLIED');
注意:这里的<member_id>
需要替换为实际的成员ID。
6. 非写节点的延时监控
-- 查看事务应用的延迟情况
SELECT * FROM performance_schema.replication_group_member_stats WHERE member_id = '<member_id>' AND variable_name = 'TRANSACTIONS_COMMITTED_BEHIND';
这个语句将显示当前节点相对于主节点的事务提交延迟。
六、VIP服务提供
-在每个节点都部署VIP绑定和检测脚本,只有符合 primary 并且online的数据库节点才绑定VIP对外提供服务
网友评论