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 深度解析auto-increment自增列"Duliplicate key"问题

    转载自:https://cloud.tencent.com/developer/article/1367681 问题描述 近期,线上有个重要Mysql客户的表在从5.6升级到5.7后master上插入 ...

  5. mysql深度优化与理解(迄今为止读到最优秀的mysql博客)

    转载:https://www.cnblogs.com/shenzikun1314/p/6396105.html 本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如 ...

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

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

  7. 更换163的yum源

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

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

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

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

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

随机推荐

  1. 美团HD(3)-加载分类导航数据

    DJHomeViewController.m /** 设置导航栏左侧内容 */ - (void)setupLeftNavItem { // Logo UIImageView *logoView = [ ...

  2. 用R做逻辑回归之汽车贷款违约模型

    数据说明 本数据是一份汽车贷款违约数据 application_id    申请者ID account_number 账户号 bad_ind            是否违约 vehicle_year  ...

  3. frame和bounds

    - frame 是一个以**父视图**为坐标系的位置- bounds 是一个以**自身**为坐标系的位置- 如果改变了bounds 那么会影响子控件的显示位置

  4. MAC下Homebrew的安装

    1.Homebrew是啥东东? Homebrew的官方网站http://brew.sh/index.html上有这么一句“Homebrew installs the stuffyouneed that ...

  5. eclipse安装spring的插件

    第一步:插件下载 http://spring.io/tools/sts/all 安装包链接 第二步:插件安装 第三步:安装成功检测

  6. Tomcat7配置及其servlet调用详解

    Tomcat 1 Tomcat简介 Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成 ...

  7. webstorm ES6 转 ES5

    一句话总结:用WebStorm自带的File Watcher功能+Babel实现自动转换ECMAScript 6代码为ES5代码 1. 新建一个Empty Project,然后在src目录下新建了一个 ...

  8. 解决 release-stripped.ap_' specified for property 'resourceFile' does not exist.

    设置buildTypes里的release的shrinkResources为false即可,如果是 release-stripped.ap_' specified for property 'reso ...

  9. matlab -xlsread 打开xls文件出错:服务器出现意外情况

    错误:xlsread:服务器出现意外情况 原因:非matlab问题,Excel的com加载项启用 解决方法:office - Excel选项-加载项:管理-com加载项-转到-取消可用加载项的勾选.

  10. Kali 使用ssh,安装vmware tools 和字体重叠

    Kali一直是我所爱,说说遇到的问题吧 第一个:字体重叠 gnome-tweak-tool --打开工具 第二个:ssh 修改sshd_config文件,命令为: vi /etc/ssh/sshd_c ...