MySQL组复制(MGR)全解析 Part 6 监控MySQL组复制
前期回顾
这期的专题我们来介绍MySQL组复制相关的内容
主机名 |
业务IP |
私有IP |
复制用户 |
角色 |
---|---|---|---|---|
rac1 |
11.12.14.29 |
10.10.10.11 |
rpl |
主 |
rac2 |
11.12.14.30 |
10.10.10.12 |
rpl |
从 |
rac3 |
11.12.14.39 |
10.10.10.13 |
rpl |
从 |
上节我们说了MGR部署,这节的内容为如何监控MGR的状态
我们可以使用如下数据库表来监控,我们需要Performance Schema是开启的,一般都是开启的
1.组复制通道名称含义
1.1 group_replication_recovery
该通道用于同分布式恢复阶段相关的复制更改(replication changes),一般用于成员新加入时的恢复动作
1.2 group_replication_applier
该通道用于组的传入的变化(incoming changes),该通道用于应用直接从组内传来的事务,即成员间的事务的应用
2.replication_group_member_stats
该表用于展示组内成员的状态信息,它只在组复制运行时才会有结果
注意该表不可以被truncate
- channel_name 组复制通道的名称
- view_id 当前该组的view id,该ID会在成员关系发生变化时改变,如退出或者新增
- member_id 为运行查询的机器的uuid
- COUNT_TRANSACTIONS_IN_QUEUE 代表因为做冲突检测而需要等待的事务的数量,一旦冲突检测通过,其会进入应用的队列
- COUNT_TRANSACTIONS_CHECKED 代表做过冲突检测的事务的数量
- COUNT_CONFLICTS_DETECTED代表未通过冲突检测的事务的数量
- COUNT_TRANSACTIONS_ROWS_VALIDATING 代表可以被用来做认证但还没有做垃圾收集的事务的数量
- TRANSACTIONS_COMMITTED_ALL_MEMBERS 代表已经在组内所有成员中成功提交过的事务,以GTID 集合的形式展现,会以固定时间刷新
- LAST_CONFLICT_FREE_TRANSACTION 最近的被检测冲突空闲事务(conflict free transaction)的事务标识符
3. replication_group_members
该表显示复制组内成员信息的网络和状态信息
注意该表不可以被truncate
- channel_name 组复制通道的名称
- member_id 代表组内成员的uuid
- member_host 代表组内成员的网络地址(主机名或者IP地址),通过数据库hostname变量获得,注意这是共有地址,非私有的
- MEMBER_PORT 代表数据库的监听端口,通过数据库port变量获得
- MEMBER_STATE 代表成员当前的状态
他可以有如下状态 - OFFLINE 组复制插件已经被安装但没有被开启 - RECOVERING 成员已经被加入组中,正在回复数据库中 - ONLINE 代表成员已经加入组中并且同步完成,需确保成员处在该状态 - ERROR 代表成员遇到了错误,譬如无法加入组或者同步异常,请查看error日志排错 - UNREACHABLE 代表组无法和该成员通信,因为组信息超时
4. replication_connection_status
该表显示当前I/O线程的状态,I/O线程负责处理从库同主库间的连接
注意该表不可以被truncate
下表列出了其和show slave statusG命令的一些比较
MGR中 show slave statusG 无结果
5. replication_applier_status
该表显示当前SQL线程的状态,
下表列出了其和show slave statusG命令的一些比较
MGR中 show slave statusG 无结果
6. 查询哪个是主库
在单主模式下,如果发生切换我们会不知道哪一台是现有的主库,我们可以使用如下命令查看
SHOW STATUS LIKE 'group_replication_primary_member'
7. 参考资料
https://dev.mysql.com/doc/refman/5.7/en/group-replication-monitoring.html
- 前台开发从头说起:谈谈CSS选择符
- dedecms无法登录提示本页面禁止返回
- 前台开发从头说起:理解css盒模型
- 两个js冲突怎么解决?试试这四个方法
- dedecms如何去除后台登陆验证码
- DEDECMS自定义表单unix时间戳转换成常规时间方法及增加表单添加时间方法
- dedecms自定义表单发布成功后返回当前页面
- 前端构建工具 Gulp.js 上手实例
- dedecms数据库内容替换安全确认码不显示怎么解决
- 利用宏避免发送确认邮件时忘记添加附件
- dateDiff在Objective-C中的实现
- 禁用Firefox自带的元素查看工具
- 容易被误解的overflow:hidden
- dedecms调用全站相关文章怎么设置
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- android:运行时权限工具类的封装
- Android:非Activity跳转Activity时要加FLAG?
- Java自动化测试(接口鉴权 16)
- Android:Tools命名空间原来是有大用处的
- Android:无线调试就是这么简单
- Java自动化测试(回写与断言 17)
- 一篇就够——Kotlin快速入门
- 微信大牛教你深入了解数据库索引
- SqlServer 资源消耗查询
- Android:检查通知权限并跳转到通知设置界面
- OpenShift应用发布和运维设计
- Android:依赖Module的问题汇总
- Android:加载网图时精确获取图片格式
- Android:8.0中未知来源安装权限变更
- Android:RippleDrawable 水波纹/涟漪效果