重构什么意思_直接重购

重构什么意思_直接重购Percona PT-kill重构版(PHP)

大家好,又见面了,我是你们的朋友全栈君。

/**

  • Percona PT-kill重构版(PHP)

  • https://github.com/hcymysql/pt-kill

  • UPDATE:

  • Modified by: hcymysql 2018/11/27

  • 1、增加慢SQL邮件报警功能

  • 2、增加慢SQL微信报警功能

  • 环境准备:

  • shell> yum install -y php-process php php-mysql

*/

概述 原生Percona版 PT-kill(Perl)工具只是单纯的KILL掉正在运行中的慢SQL,而不能作为一个监控工具使用,例如缺少邮件报警或者微信报警功能,固需要将其重构。

重构版 PT-kill(PHP)从information_schema.PROCESSLIST表中捕获正在运行中的SELECT|ALTER等DML/DDL消耗资源过多的查询,过滤它们,然后杀死它们(可选择不杀)且发邮件/微信报警给DBA和相关开发知悉,避免因慢SQL执行时间过长对数据库造成一定程度的伤害。(注:慢SQL执行完才记录到slow.log里,执行过程中不记录。)

Usage:

Options:

-u  username

-p  password

-h  host ip

-P  port

-B  busytime time seconds 设置慢SQL执行时间触发报警

-I  interval time seconds 设置守护进程下间隔监测时间

–kill 如果想杀掉慢查询,加上该选项。

–match-info 匹配杀掉SELECT|INSERT|UPDATE语句

–match-user 匹配杀掉的用户

–daemon 1开启后台守护进程,0关闭后台守护进程

–mail 开启发送邮件报警

–weixin 开启发送微信报警

–help  Help

Example :

前台运行

shell> php pt-kill.php -u admin -p 123456 -h 10.10.159.31 -P 3306 -B 10  –match-info=’select|alter’ –match-user=’dev’ –kill –mail –weixin

后台运行

shell> php pt-kill.php -u admin -p 123456 -h 10.10.159.31 -P 3306 -B 10  -I 15 –match-info=’select|alter’ –match-user=’dev’ –kill –mail –weixin –daemon 1

关闭后台运行

shell> php pt-kill.php –daemon 0

以上是工具的使用方法和参数选项。 这里说下比较重要的参数:

1、–kill 如果想杀掉慢查询,那么在后面添加该选项;

2、–match-info 可以单独使用,也可以和–match-user结合一起使用;

3、–daemon 1 是开启后台守护进程,如果不添加该选择,可以用系统的crontab代替。 该选项要和-I 10(秒)配合一起使用,即每休眠10秒监控一次。0为关闭后台守护进程。

4、–mail 为开启发送邮件报警,需先设置smtp_config.php,改成你自己的邮箱账号信息

smtp_config.php

<?php

    $content = nl2br(file_get_contents(dirname(__FILE__).’/kill.txt’));
    require_once “Smtp.class.php”;

    //******************** 配置信息 ********************************
    $smtpserver = “smtp.126.com”;//SMTP服务器
    $smtpserverport = 25;//SMTP服务器端口
    $smtpusermail = “chunyang_he@126.com”;//SMTP服务器的用户邮箱
    $smtpemailto = ‘chunyang_he@126.com’;//发送给谁
    $smtpuser = “chunyang_he@126.com”;//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
    $smtppass = “123456”;//SMTP服务器的授权码
    $mailtitle = “警告!出现卡顿慢SQL,请及时优化处理!”;//邮件主题
    $mailcontent = “<h1>”.$content.”</h1>”;//邮件内容
    $mailtype = “HTML”;//邮件格式(HTML/TXT),TXT为文本邮件
    //************************ 配置信息 ****************************

?>

5、–weixin 为开启发送微信报警,需要先安装下simplejson-3.8.2.tar.gz

shell> tar zxvf simplejson-3.8.2.tar.gz

shell> cd simplejson-3.8.2

shell> python setup.py build

shell> python setup.py install

然后编辑pt-kill.php脚本 找到 $status1 = system(“/usr/bin/python  wechat.py  ‘hcymysql’ {$row[‘DB’]}库出现卡顿慢SQL! ‘{$content1}'”); 将其’hcymysql’我的微信号换成你自己的即可。

微信企业号设置 移步https://www.cnblogs.com/linuxprobe/p/5717776.html 看此教程配置。

6、会在工具目录下生成kill.txt文件保存慢SQL。

shell> cat kill.txt

2018-11-27 16:41:22

用户名:root

来源IP:localhost

数据库名:hcy

执行时间:18

SQL语句:select sleep(60)

7、默认只杀连接中的慢SQL,保留会话连接,如果想把连接也杀掉,去掉QUERY

修改pt-kill.php

//$kill_sql = “KILL QUERY {$row[‘ID’]}”;

$kill_sql = “KILL {$row[‘ID’]}”;

具体演示请看“pt_kill演示录像.avi”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107182.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 并发编程面试题(2020最新版)「建议收藏」

    文章目录基础知识并发编程的优缺点为什么要使用并发编程(并发编程的优点)并发编程有什么缺点并发编程三要素是什么?在Java程序中怎么保证多线程的运行安全?并行和并发有什么区别?什么是多线程,多线程的优劣?线程和进程区别什么是线程和进程?进程与线程的区别什么是上下文切换?守护线程和用户线程有什么区别呢?如何在Windows和Linux上查找哪个线程cpu利用率最高?什么是线程死锁形成死锁的…

    2022年4月18日
    37
  • mysql 隐式类型转换_date_range函数

    mysql 隐式类型转换_date_range函数一、如果表定义的是varchar字段,传入的是数字,则会发生隐式转换。1、表DDL2、传int的sql3、传字符串的sql仔细看下表结构,rid的字段类型:而用户传入的是int,这里会有一个隐式转换的问题,隐式转换会导致全表扫描。把输入改成字符串类型,执行计划如下,这样就会很快了。此外,还需要注意的是:数字类型的0001等价于1字符串的0001和1不等价二、如果表定义的是int字段,传入的是字符串…

    2022年10月11日
    0
  • 平稳和非平稳信号_非平稳信号处理

    平稳和非平稳信号_非平稳信号处理平稳和非平稳都是针对随机信号说的。平稳信号是指分布参数或者分布律随时间不发生变化的信号。非平稳信号是指分布参数或者分布律随时间发生变化的信号。常见的平稳信号:一段短的语音信号(10~30ms)常见的非平稳信号:一段长的语音信号,一首歌等给出一个信号(可以随意选取一个.mp3文件,命名为m.mp3),对其进行平稳性分析:%信号的平稳性分析clc,clear;fs=44100;s=a…

    2022年10月28日
    0
  • oracle 查看服务器密码修改,如何修改oracle用户密码「建议收藏」

    oracle 查看服务器密码修改,如何修改oracle用户密码「建议收藏」修改oracle用户密码的方法:首先连接oracle数据库所在服务器,并进入oracle控制台;然后输入“selectusernamefromdba_users”查看用户列表;最后输入修改用户口令即可。本教程操作环境:windows7系统、oracle版,DELLG3电脑。修改oracle用户密码的方法:1、用CRT以安装oracle数据库的用户连接oracle数据库所在服务器。(以服务…

    2022年7月28日
    3
  • cpu性能天梯图2022「建议收藏」

    cpu性能天梯图2022「建议收藏」下方为排名前30的CPU天梯图,为方便大家查看更多CPU具体型号的排名和评分,请看天梯图后面的图表。cpu新品活动388红包等你抢机会不容错过http://www.adiannao.cn/dnAMDEPYC7763,87,767AMDEPYC7J13,86,006AMDEPYC7713,85,947AMDRyzenThreadripperPRO3995WX,85,365AMDRyzenThreadripper3990X,81,086AMDEPY

    2022年9月20日
    0
  • ubuntu怎么卸载docker_failed to start docker.service

    ubuntu怎么卸载docker_failed to start docker.serviceDocker卸载及安装(CentOS7)1.卸载:#停止docker服务systemctlstopdocker#查看当前所有版本安装信息rpm-qa|grepdocker#yumlistinstalled|grepdocker#docker-ce-cli-20.10.12-3.el7.x86_64#docker-ce-20.10.11-3.el7.x86_64#docker-scan-plugin-0.12.0-3.el7.x86_64#docker-ce-

    2022年9月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号