1. IO层面检查

 
(1)IO检查
 

查看%util是否接近100%定位是哪个磁盘IO压力大

#iostat -x 1 10
(2)iotop定位负载来源进程
查看哪个PID占用IO最高
#iotop
(3)pt-ioprofile定位负载来源文件
查看哪个文件的IO占用时间最多
#pt-ioprofile  --profile-pid=3712 --cell=sizes
 
 
2.文件系统层面检查
(1)查看当前系统的I/O调度
假如MySQL数据文件存放在sda1里,不同的磁盘则选择不同的IO调度策略

# cat /sys/block/sda/queue/scheduler

(2)查看文件系统

查看MySQL数据文件存放的文件系统是否为xfs或者ext4
#mount
 
3.linux内核参数检查

# cat /etc/sysctl.cnf

4.收集MySQL数据库基本信息

(1)收集OS基本信息

#pt-summary

(2)查看MySQL统计信息

#pt-mysql-summary --user=root --password=123456 --host=127.0.0.1 --port=3306

(3)查看用户数据库的存储引擎

mysql>select count(*) as cnt,table_schema,engine from information_schema.tables where table_schema not in('mysql','information_schema','PERFORMANCE_SCHEMA') group by table_schema,engine order by cnt desc;

(4)查看所有表的存储引擎

mysql>select table_schema,table_name,engine,TABLE_ROWS,AVG_ROW_LENGTH,DATA_LENGTH,INDEX_LENGTH from information_schema.tables where table_schema not in('mysql','information_schema','PERFORMANCE_SCHEMA') order by table_schema,TABLE_ROWS desc;

(5)查看线程状态
mysql> show full processlist;

(6)如果第5步有不少SQL经常能看到,把那些SQL的执行计划也收集下,以及相应表的DDL
mysql> explain select....
mysql> show create table table_name;
mysql> show index from table_name;

(7)提供慢日志统计结果
mysqldumpslow slow.log > slow-stat.log
slow.log文件名改成你真正的慢日志文件名

(8)查看死锁

监控死锁

#pt-deadlock-logger--ask-pass --run-time=10 --interval=3 --create-dest-table --dest D=test,t=deadlocks u=root,P=3306,h=127.0.0.1
查看死锁
mysql>select *  from deadlocks\G;

5.检查主从同步
(1)从库检查同步状态
检查Slave_IO_Running和Slave_SQL_Running是否都为YES
mysql>show slave status\G;

首先Master_Log_File和Relay_Master_Log_File所指向的文件必须一致。

其次Relay_Log_Pos和Exec_Master_Log_Pos的为止也要一致才行。

(2)主从数据校验

mysql数据校验
主库执行
pt-table-checksum -uroot  --ask-pass --recursion-method=processlist --recurse=1  --no-check-binlog-format --nocheck-replication-filters --resume --max-lag=10
 
从库:
select * from percona.checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc);

6.PXC集群检查

(1)查看Galera集群每个节点状态

mysql>show status like 'wsrep%';

wsrep_cluster_status状态为Primary

wsrep_connected为ON

wsrep_cluster_state_uuid:在集群所有节点的值应该是相同的
wsrep_local_state_comments是否为 Synced 表示节点处于工作状态
 
(2)查看每个节点的4567端口
#lsof -i :4567
查看每个节点的4567端口和其他节点都是互通的
 
7.MHA检查
(1)检查启动的状态
masterha_check_status --conf=/etc/masterha/app1.cnf
 
 

(2)masterha_check_ssh验证ssh信任登录是否成功

masterha_check_ssh --conf=/etc/masterha/app1.cnf

(3)masterha_check_repl验证mysql复制是否成功

masterha_check_repl --conf=/etc/masterha/app1.cnf
 
8.查看日志
(1)查看报错日志

mysql> show variables like 'log_error';

#cat mysqlerr.log |grep -i -C 5 ERROR

(2)查看备份日志

MySQL深度巡检的更多相关文章

  1. mysql常规巡检

    mysql常规巡检   目录 一.巡检脚本 二.下载巡检脚本 三.脚本执行说明 1.inspection.conf 使用说明 2.inspection_mysql.sh 使用说明 3.mysqltun ...

  2. [sql]大型网站MySQL深度优化揭秘

    大型网站MySQL深度优化揭秘 第1章优化的思路和线路 1.1 网站优化的思路    2 1.2 MySQL优化,nginx这样的东西怎么优化? 第2章硬件层面优化 2.1 数据库物理机 2.1.1 ...

  3. mysql 深度分页

    mysql  分页查询使我们常见的需求 ,但是随着页数的增加查询性能会逐渐下降,尤其是到深度分页的情况.我们可以把分页分为两个步骤,1.定位偏移量,2.获取分页条数的 数据. 所以当数据较大页数较深时 ...

  4. 百万级数据下的mysql深度解析

    首先,数据量大的时候,应尽量避免全表扫描,应考虑在 where 及 order by 涉及的列上建立索引,建索引可以大大加快数据的检索速度.但是,有些情况索引是不会起效的: 1.应尽量避免在 wher ...

  5. 更换163的yum源

    1.利用oss的文件目录形式进行各地项目的汇总保存.上报在A目录,统计过的放到B目录. 2.各地服务器健康状态检查,每5分钟检查项目,    如果有异常,就发短信+邮件进行汇报.不管是不是有异常,都以 ...

  6. 上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB

    面试题 & 真实经历 面试题:在数据量很大的情况下,怎么实现深度分页? 大家在面试时,或者准备面试中可能会遇到上述的问题,大多的回答基本上是分库分表建索引,这是一种很标准的正确回答,但现实总是 ...

  7. 如何做到MySQL的高可用?

    本课时的主题是“MySQL 高可用”,主要内容包含: 什么是高可用性 MySQL 如何提升 MTBF MySQL 如何降低 MTTR 避免单点失效 基础软硬件避免单点 MySQL 高可用架构选型 故障 ...

  8. 搭建稳固的MySQL运维体系

    MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...

  9. 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

    工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理 ...

随机推荐

  1. 【C#学习笔记】浏览目录得到路径

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. Android编译系统详解(一)

    ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/art ...

  3. std::advance 给迭代器增加指定偏移量

    template <class InputIterator, class Distance> void advance (InputIterator& it, Distance n ...

  4. UVA 10652 Board Wrapping(凸包)

    The small sawmill in Mission, British Columbia, hasdeveloped a brand new way of packaging boards for ...

  5. JGUI源码:实现简单MVVM单项绑定学习笔记(15)

    前面几节都是jquery界面方面的东西,本节研究些数据方面的东西:MVVM. MVVM由三部分组成:Model <=> ViewModel <=> View,当Model数据改 ...

  6. XtraBackup之踩过的坑

    xtrabackup相信目前使用已经非常广泛了,备份innodb表的首选工具,但是其中还是有点小坑,虽然发生的概率不大,但是我还是踩坑了.关于xtrabackup的详细参考请查阅官方文档http:// ...

  7. 第四次Scrum meeting

    第四次Scrum meeting 会议内容: 沟通方面:与学霸在线组.学霸手机客户端组进行沟通,了解现阶段各个小组的进度,并针对接口结构方面进行调整 前后端:我们完全可以是不需要界面的,但是为了用户的 ...

  8. List转DataTable(反射) ; 将泛型集合类转换成DataTable ; 将集合类转换成DataTable

    public class ConvertX { #region 将集合类转换成DataTable /// <summary> /// 将集合类转换成DataTable /// </s ...

  9. Ribbon的配置

    1.注解配置 @RibbonClient(name = "xxx",configuration = XxxRibbonConfig.class) public class XxxR ...

  10. Tensorflow笔记——神经网络图像识别(四)搭建模块化的神经网络八股(正则化,指数衰减学习率,滑动平均等优化)

    实战案例: 数据X[x0,x1]为正太分布随机点, 标注Y_,当x0*x0+x1*x1<2时,y_=1(红),否则y_=0(蓝)  建立三个.py文件 1.  generateds.py生成数据 ...