00:00
今天这堂课呢,我们就来说一下这个慢思考。呃,在我们日常维护数据库中呢,那么90%的性能,那其实是由这个慢SQ所引起的,包括你那个CPU升高了,连接数升高了。那么通常呢,就是。你执行这个show process list,你会发现满屏的都是一些正在运行的慢。啊,那么呢,我在2018年的时候呢,我用这个PP重启重构了版这个PDQ,那原版的这个PDQ啊,它只能去Q叫慢SQ,但是呢,它不能是有那种报警的一个功功能,那这里呢。我增加了一个是触发邮件报警,呃,第二个呢,是触发这个微信公众号的一个报警。那这里呢,就给大家演示一下这个东西是怎么用的。我这里呢。实现的思路呢,就是。从这个S。
01:01
这个库。呃,Process list这个表中补货正在运行的DDML和DDL消耗资源过多的,呃,查询,然后过滤他们,然后并且呢把他们就给Q点,并且呢会发送那个报警给地杯和相关的研发人员。嗯,慢搜呢,注意点啊,就是说它只有执行完以后,它才会记录到你这个slow log日志里头,执行过程中,所以它是不会记录的,所以说呢,我们需要通过这个工具啊,去及时的去把它们给Q掉,避免呢对数据库造成一定程度的伤害,那首先呢,你需要一个环境准备。你只只需要执行这条复制就可以了。就是因为我这是PB写的,你需要把相关的依赖先给安装好了。这是第一步执行环境准备,如果你是S7呢,后面加一个ND。
02:01
啊。这就好了,这是那个我们那个第一步。嗯,然后呢,你需要从这个code,这是我我把我的脚本工具啊,都放在我那个getu上了,你从这个code点击这个ZIP就可以下载下来了。然后这里呢。嗯。我来给大家先看一眼,那你就直接执行这个P2P。呃,PTQ就可以了。这时候呢,它会列出一个使用帮助。那么我们你看有一个Q这个选项,然后呢,你可以匹配用户。匹配这个杀掉的哪些语句?这个可以放入后台守护进程里头。嗯,这杠是发送邮件的杠,微信呢,是发送微信公众号报警的。嗯。发送这个邮件呢,你需要编辑这个文件。改成你自己的信箱就行了,然后至于这个微信公众号呢,你需要看一眼这个教程,你首先你需要自己申请一个微信公众号,然后按照这一步一步的。
03:08
啊,去做一些设置,那这里呢,我就嗯不太细说了,你只需要按照我这篇文档。这是微信的啊把这个。改成你自己的啊就可以了,然后呢,发送邮件的,发送微信的时候呢,嗯,把这个。HC,买这是我的微信啊,你换成你自己的微信公众号就可以了,这样就实现了一个微信的报警。那么我这个工具呢。啊,你可以通过前台运行,你可你也可以通过后台开启一个守护。进程,那么我这里先给大家演示一下,比如说我现在执行这条语句。休眠1800秒,然后再返回ID。
04:01
那么呢,我这里呢,我就先先在前台给大家运行一下。那这里我们直接就复制就行了,输入我的密码。杠H就本地12127.0.0.1。这是端口号后面的这个杠B呢,就设置一个正在执行的慢SQL时间,那么我这里设时就是当超过十秒以后,他才会认定是慢斯。这个呢,后面是跟着你匹配的,呃,SQL语句。你给执行就行了。然后呢,我们现在直接回车,先看一下效果。那这里呢,就会发现啊,它提示一个警告出现卡顿曼circle,这时候呢,我们看目录下的有1Q点文件。Q加TST这个文件。啊,这里呢,会是把时间发生的时间,用户名来源IP啊,库名执行时间,还有这个四个语句会记录下来,这方便今后呃,你们去排查问题啊。
05:08
啊,如果你想把这条语句给Q掉的话,你后面只需要跟住跟一个杠杠Q。这条语句就被Q掉了,我们回车一下看一眼。哎,你看已经给杀掉了。你看这个端口,你看已经你看。被中断了,会话已经被中断了。啊,这个是演示了一个前台的怎么去运行。如果要在后台的话,你只需要。添加一个no heart。那我们把这个给加上去啊。这加一个Q。这然后我们这儿开一个no前面。这时候呢,就跑出后台守护进程里了,我们一回车。在当前目录下的。嗯,我看一眼啊。
06:02
Gun。嗯。Nop PP杠、U。这是设置一下那个每隔三秒。去监测,然后我看看啊刚。CU。呆蒙毅。啊,这里呢,我们发现多一个PTq.PID这是后台守护这个文件PID文件。那么是3501。啊,我们可以用来看一眼。3501啊,这时候呢,就开启了一个后台守护进程。那同时呢,我们可以。改一下啊,50秒。
07:01
然后我们等待一会儿,他就这条鱼局呢,就会被Q掉了。啊,这里头你看这条语句已经被QQ掉了。嗯,同时呢。啊Q掉完以后呢,它会我这个会放入到一个历史的文件里头。你可以点击来看一眼。这是Q掉了刚才的,呃,一条circle啊,这个存入你这个目录下呢,有一个下划线,你就看这个历史文件就可以知道了,我我之前Q掉了哪些circle。然后呢,关闭呢。如果你想把这个后台守护进程要给关了呢,你就直接执行这个就行了。哎,这个这时候呢,后来时候我进程已经关了,我们发现这个PID文件已经不在了。
08:06
啊,那今天呢,就是给大家演演示了一下重构版的这个PDQ是怎么使用的啊,以便于帮助大家在日常工作中怎么去解决这个慢Q的。
我来说两句