[转帖]技术分享| MySQL 的 AWR Report?— MySQL 状态诊断报告
https://segmentfault.com/a/1190000039959767
作者:秦福朗
爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。热爱 IT,喜欢在互联网里畅游,擅长摄影、厨艺,不会厨艺的 DBA 不是好司机,didi~
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
引言
用过 Oracle 数据库的同学都知道,在 Oracle 有个功能:AWR(全称为 Automatic Workload Repository),自动负载信息库。它收集关于特定数据库的操作统计信息和其他统计信息,Oracle 以固定的时间间隔(默认为 1 个小时)为其所有重要的统计信息和负载信息执行一次快照,并将快照存放入 AWR 中,为 DBA 们分析数据库提供了非常好的便利条件。虽然 MySQL 没有这么强的功能,但 MySQL 有一个类似的,名叫 diagnostics 的存储过程,提供了相类似的功能。
diagnostics() 存储过程是利用 MySQL 自身的 information_schema,performance_schema、sys 等元数据信息及性能数据信息的库表函数等,对当前服务器状态进行诊断,提供给 DBA 一份可以用于分析数据库状态的报告。
基本包含信息
diagnostics() 收集的数据主要包含以下信息:
- 来自 metrics 视图的信息;
- 来自其他相关的 sys schema 视图的信息,比如检测第 95 百分位数的查询视图;
- 如果是 NDB Cluster 的 MySQL 服务器,则还会有 ndbinfo schema 的信息;
- 主从复制状态信息
一些 sys schema 的视图被计算为初始(可选)、overall 和 delta:
- 初始视图是 diagnostics() 过程开始时的视图内容。这个输出与用于 delta 视图的起始值相同。如果 diagnostics.include_raw 配置选项为 ON,则初始视图会被包含在报告中。
- overall 视图是 diagnostics() 过程结束时的视图内容。这个输出与用于 delta 视图的结束值相同。overall 视图总是被包含在报告内。
- delta 视图是 procedure 执行开始到结束的差异。最小值和最大值分别是结束视图的最小值和最大值。它们不一定反映监控期间的最小值和最大值。除了 metrics 视图外,Delta 仅计算第一个和最后一个输出之间的差值。
注意:
这个存储过程通过操作 sql_log_bin 系统变量的会话值,在执行过程中禁用二进制日志。这是一个受限制的操作,所以这个存储过程需要有足够的权限来设置受限制的会话变量。
命令示例
方式 1:
创建一个诊断报告,使用 current Performance Schema 设置,每 30 秒启动一次迭代,最多运行 120 秒:
mysql> CALL sys.diagnostics(120, 30, 'current');
要在 diagnostics() 过程运行时将其输出内容捕获到文件中,可使用 MySQL 客户端 tee 文件名和 notee 命令:
mysql> tee diag.out;
mysql> CALL sys.diagnostics(120, 30, 'current');
mysql> notee;
此方式生成表格样式如下:
方式 2:
shell> mysql -uroot -p -S /opt/mysql/data/6666/mysqld.sock -H -e "CALL sys.diagnostics(120, 30, 'current');" >report.html
此方式生成网页样式如下:
参数
CALL sys.diagnostics( in_max_runtime, in_interval, 'current');
- in_max_runtime (INT UNSIGNED):最大数据采集时间,单位为秒。默认值为 60 秒,自定义需使用大于 0 的值。
- in_interval (INT UNSIGNED):数据采集之间的休眠时间,单位为秒。默认值为 30 秒,自定义需使用大于 0 的值。
in_auto_config ENUM('current', 'medium', 'full'): 要使用的 Performance Schema 配置。允许的值有:
- current:使用当前的 instrumen 和 consumers 设置。
- medium:启用部分 instrumen 和 consumers。
- full:启用所有 instrumen 和 consumers。
注意:
有关 Performance Schema 模式下的 instrumen 和 consumer 的概念与基本使用原理可自行查阅资料,本文不再赘述。
启用的 instrumen 和 consumer 越多,对 MySQL 服务器性能影响越大。要小心使用 medium 设置,尤其是 full 设置,对性能影响较大。没特殊要求使用 current 即可。
使用 medium 或 full 设置需要 super 权限,如果选择了 current 以外的设置,则会在程序结束时恢复当前设置。
配置选项
diagnostics() 操作可以使用下面的配置选项或者其对应的用户定义变量:
以下参数需新增或修改 sys.sys_config,具体用法可了解 MySQL 官方文档 sys_config 一节。
- debug, @sys.debug
如果该选项为 ON,则产生调试输出。默认值为 OFF。
UPDATE `sys`.`sys_config` SET `value` = 'ON' WHERE `variable` = 'debug';
- diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables
如果这个选项为 ON,那么 diagnostics() 过程就被允许在 INFORMATION_SCHEMA.TABLES 表上执行表扫描。如果有很多表,这可能会有较高的代价。默认值是 OFF。
UPDATE `sys`.`sys_config` SET `value` = 'ON' WHERE `variable` = 'diagnostics.allow_i_s_tables';
- diagnostics.include_raw, @sys.diagnostics.include_raw
如果这个选项为 ON,则 diagnostics() 过程的输出包括查询 metrics 视图的原始输出。默认值是 OFF。
UPDATE `sys`.`sys_config` SET `value` = 'ON' WHERE `variable` = 'diagnostics.include_raw';
- statement_truncate_len, @sys.statement_truncate_len
format_statement() 函数返回的语句的最大长度。较长的语句会被截断到这个长度。默认值是 64。
UPDATE `sys`.`sys_config` SET `value` = '32' WHERE `variable` = 'statement_truncate_len';
报告信息
(1)MySQL 服务器基本信息
(2)基本配置信息
- 参数配置
- Performance Schema 下的 instrumen 与 consumer 配置情况
(3)sys schema初始状态
(4)每次迭代的信息
和命令给定的迭代周期与次数有关
(5)Schema 信息
(6)Overall 状态信息
(7)Delta 状态信息
因篇幅长度,以上只是列出部分信息,具体信息可以自行实践了解,文档末尾附上一份报告链接,可下载审阅。
结语
diagnostics() 包含的信息很多,可实现“一键”数据库性能信息状态诊断并输出报告,帮助 DBA 在实际工作中便捷地分析数据库状态。
附链接:
sys_config:https://dev.mysql.com/doc/ref...
诊断报告示例:
链接:https://pan.baidu.com/s/1XEV2... 提取码:3306
[转帖]技术分享| MySQL 的 AWR Report?— MySQL 状态诊断报告的更多相关文章
- 【华为云技术分享】数据库开发:MySQL Seconds_Behind_Master简要分析
[摘要]对于mysql主备实例,seconds_behind_master是衡量master与slave之间延时的一个重要参数.通过在slave上执行"show slave status;& ...
- 尖峰7月线上技术分享--Hadoop、MySQL
7月2号晚20:30-22:30 东大博士Dasight分享主题<大数据与Hadoop漫谈> 7月5号晚20:30-22:30 原支付宝MySQL首席DBA分享主题<MySQL ...
- 技术分享|闪回在MySQL中的实现和改进
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 3306π 福州站,以下内容是由万里数据库,研发工程师唐洁分享的MySQL闪回方案完整PPT. Enjoy GreatSQ ...
- 技术分享 | Prometheus+Grafana监控MySQL浅析
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简介 Prometheus 一套开源的监控&报警&时间序列数据库的组合,通常 Kubernetes 中都会 ...
- 技术分享 | MySQL Group Replication集群对IP地址的限制导致的一些问题与解决办法
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 遇到问题 测试人员小玲准备在docker环境中部署MGR集群进行一些测试,她有三个容器,容器IP分别是: 172.3 ...
- 技术分享 | MySQL数据误删除的总结
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 内容提要 用delete语句 使用drop.truncate删除表以及drop删 ...
- 技术分享 | MySQL中MGR中SECONDARY节点磁盘满,导致mysqld进程被OOM Killed
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 在MGR测试中,人为制造磁盘满问题后,节点被oom killed 问题描述 在对 ...
- 技术分享 | 简单测试MySQL 8.0.26 vs GreatSQL 8.0.25的MGR稳定性表现
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. M ...
- 技术分享 | 在MySQL对于批量更新操作的一种优化方式
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 作者:景云丽.卢浩.宋源栋 GreatSQL社区原创内容未经授权不得随意使用,转 ...
- 技术分享|MySQL caching_sha2_password认证异常问题分析
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 0. 导读 相同的账号.密码,手动客户端连接可以成功,通过MySQL Conne ...
随机推荐
- Kubernetes架构及安装
K8s架构 k8s内部是有几个组件的,分别是controller manager,api-server,scheduler,kubelet以及etcd,kube-proxy还有k8s客户端kubect ...
- H3C 存储换盘操作
实际存储型号H3C CF8844 环境说明:H3C存储设备存在一个坏盘需要更换. 更换准备 1. 取出备件检查完毕后放置到安全场所(请严格按照<IT产品现场工程师通用服务规(维修篇)>操作 ...
- kubernetes安装(一)
参考: https://www.cnblogs.com/liuyangQAQ/p/17299871.html 部署组件包 名称 安装包 kubeadm集群组件 kubelet-1.20.9 kubea ...
- JavaFx 打包jar(六)
JavaFx 打包jar(六) JavaFX 从入门入门到入土系列 我们编写了不少javafx,那么如何打包成jar给用户呢?下面我给出比较全的打包方式. 打包jar 下面我给出比较全的打包方式. 1 ...
- ubuntu 之 lftp 上传 和下载
1. 安装 sudo apt-get install lftp 2. 简单教程 2.0 声明:上传或下载文件 用get 或 mget,这种方式 不包含文件夹本身,如果需要连文件夹一起上传或下载则需要使 ...
- Codeforces 1202D 思维 构造
原题链接 题意 每组数据给我们一个n,然后要求我们用{1, 3, 7}这三种字符来组成一个长度小于1e5的序列,要求其中为1337的子序列(不要求相邻)的数量恰好为n 思路 首先可以考虑最简单的一种构 ...
- Llama2-Chinese项目:2.2-大语言模型词表扩充
因为原生LLaMA对中文的支持很弱,一个中文汉子往往被切分成多个token,因此需要对其进行中文词表扩展.思路通常是在中文语料库上训练一个中文tokenizer模型,然后将中文tokenizer与 ...
- EDS从小白到专家丨生态产业链高效协同的一计良策
本文分享自华为云社区<[EDS从小白到专家]第3期:生态产业链高效协同的一计良策>,作者:开天aPaaS小助手 . 号外! 华为将于2023年9月20-22日,在上海世博展览馆和上海世博中 ...
- 一文带你了解两种Transformer文字识别方法
摘要:受Transformer模型的启发,目前一些学者将该结构应用到文本行识别中,以替代RNN,取得了良好的效果,如在HGA-STR和 SRN. 当前的文本行识别器为拥有更强的序列语义能力,模型多采用 ...
- 18篇文章系统解读:中台规划如何撬动企业IT基础设施转型升级
摘要:通过这个系列,让大家对中台的价值.针对的问题痛点.中台规划的方法思路和技巧.一些中台业务实践有个基本的认识,让客户清楚的意识到企业中台的业务价值,进而通过企业中台规划牵引客户IT基础设施投资. ...