日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

lepus mysql 慢查询_天兔 -Lepus 慢查询分析平台配置

發(fā)布時(shí)間:2024/1/23 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lepus mysql 慢查询_天兔 -Lepus 慢查询分析平台配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

想要實(shí)現(xiàn)慢查詢查詢分析,需要在被監(jiān)控端安裝percona-toolkit工具。

1、被監(jiān)控端安裝軟件包

yum -y install

perl-IO-Socket-SSL

yum -y install perl-DBI

yum -y install perl-DBD-MySQL

yum -y install perl-Time-HiRes

2、被監(jiān)控端解壓percona-toolkit工具包

[root@node1

src]# pwd

/usr/local/src

[root@node1

src]# tar

-xzf percona-toolkit-2.2.12.tar.gz

[root@node1

src]# ll

drwxrwxr-x 6

1000 1000 4096 Aug 17 16:19 percona-toolkit-2.2.12

-rw-r--r-- 1

root root 1392691 Aug 17 16:17 percona-toolkit-2.2.12.tar.gz

[root@node1

src]# ll

[root@node1

src]# cd

percona-toolkit-2.2.12

[root@node1

percona-toolkit-2.2.12]# perl Makefile.PL

[root@node1

percona-toolkit-2.2.12]# make && make

install

安裝好之后,pt工具會(huì)在/usr/local/bin目錄下(不同的pt版本安裝的位置可能不同)

3、從監(jiān)控端的/usr/local/lepus/client/mysql目錄下把lepus_slowquery.sh腳本拷貝到被監(jiān)控端(存放的位置沒(méi)有要求,可以放在/usr/local/sbin目錄下)

[root@node9

mysql]# scp lepus_slowquery.sh 192.168.2.225:/usr/local/sbin

4、在被監(jiān)控端編輯scp過(guò)來(lái)的lepus_slowquery.sh腳本

[root@node1

sbin]# pwd

/usr/local/sbin

[root@node1

sbin]# vim

lepus_slowquery.sh ? ? ? ? #下面藍(lán)色字體是需要修改的,其他不用修改。

#config lepus database server#監(jiān)控機(jī)配置

lepus_db_host="192.168.2.33"

#監(jiān)控機(jī)的IP

lepus_db_port=3306 ? ??#監(jiān)控機(jī)的端口號(hào)

lepus_db_user="lepus_user"

#監(jiān)控機(jī)的用戶名

lepus_db_password="123456"

#監(jiān)控機(jī)的密碼

lepus_db_database="lepus"

#使用的庫(kù)

#config mysql

server ? ??? ??#被監(jiān)控端配置

mysql_client="/usr/local/mysql/bin/mysql"

#mysql軟件安裝目錄下,這個(gè)就是平時(shí)所用的mysql -uroot -proot123的那個(gè)mysql。

mysql_host="192.168.2.201"

#被監(jiān)控端的IP

mysql_port=3306

#被監(jiān)控端的端口號(hào),生產(chǎn)中不要用這個(gè),用別的

mysql_user="lepus_monitor"

#遠(yuǎn)程登錄用戶名

mysql_password="123456" ? ??#密碼

#config slowqury#被監(jiān)控端慢查詢?nèi)罩九渲?存放目錄)

slowquery_dir="/log/mysql/"

#MySQL慢日志存放目錄,也是被監(jiān)控端存放lepus分析出來(lái)的慢查詢?nèi)罩敬娣拍夸?/p>

slowquery_long_time=1

#慢查詢時(shí)間

slowquery_file=`$mysql_client -h$mysql_host

-P$mysql_port -u$mysql_user -p$mysql_password -e "show variables like

'slow_query_log_file'"|grep log|awk '{print $2}'`

pt_query_digest="/usr/local/bin/pt-query-digest"

#pt工具軟件的安裝目錄下,安裝的時(shí)候關(guān)注一下安裝到的位置。

#config

server_id

lepus_server_id=271

#這個(gè)server_id指的是lepus監(jiān)控平臺(tái)所分配的id,需要通過(guò)下面的方式來(lái)查看,參考截圖:

注意:

lepus_server_id,該值需要從系統(tǒng)中獲取。進(jìn)入MySQL服務(wù)器配置,在部署腳本的主機(jī)前查詢到當(dāng)前ID即為主機(jī)的server_id。

lepus_server_id必須和MySQL服務(wù)器配置里的對(duì)應(yīng)服務(wù)器ID一一對(duì)應(yīng),否則您可能將無(wú)法查詢到該主機(jī)的慢查詢。

#collect

mysql slowquery log into lepus database

$pt_query_digest --user=$lepus_db_user

--password=$lepus_db_password --port=$lepus_db_port --review

h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review --history

h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review_history

--no-report --limit=100% --filter=" \$event->{add_column} =

length(\$event->{arg}) and \$event->{serverid}=$lepus_server_id "

$slowquery_file > /tmp/lepus_slowquery.log

##### set a

new slow query log ###########

tmp_log=`$mysql_client -h$mysql_host -P$mysql_port

-u$mysql_user -p$mysql_password -e "select

concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H'),'.log');"|grep

log|sed -n -e '2p'`

#config mysql

slowquery

$mysql_client

-h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global

slow_query_log=1;set global

long_query_time=$slowquery_long_time;"

$mysql_client

-h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global

slow_query_log_file = '$tmp_log'; "

#delete log

before 7 days

cd

$slowquery_dir

/usr/bin/find

./ -name 'slowquery_*' -mtime +7|xargs rm -rf ;

####END####

說(shuō)明:

vim編輯結(jié)束保存之后需要變更腳本格式

顯示當(dāng)前的格式(默認(rèn)為dos,這是不能執(zhí)行的):set

ff?

修改為Unix(變更為unix之后,腳本才可以成功執(zhí)行):set

fileformat=unix

:wq退出vim編輯器

5、測(cè)試,使用存儲(chǔ)過(guò)程插入1萬(wàn)條數(shù)據(jù)或者查詢一個(gè)數(shù)十萬(wàn)行的表,查詢結(jié)束之后手動(dòng)執(zhí)行一下這個(gè)腳本,這樣在監(jiān)控界面上就可以看到結(jié)果了。(測(cè)試SQL參見(jiàn)文檔底部)

[root@node1 sbin]# sh

lepus_slowquery.sh

6、測(cè)試成功之后,加入計(jì)劃任務(wù)。因?yàn)槁樵冏隽税葱r(shí)的切割,建議計(jì)劃任務(wù)時(shí)間間隔在1小時(shí)之內(nèi)。

[root@node1

sbin]# crontab -e

crontab:

installing new crontab

[root@node1

sbin]# crontab -l

*/5 * * * *

/bin/sh /usr/local/sbin/lepus_slowquery.sh > /dev/null

2>&1

7、開(kāi)啟慢查詢分析

在MySQL服務(wù)器管理里面電擊右側(cè)的編輯按鈕,進(jìn)入服務(wù)器編輯界面。

配置slowquery為打開(kāi)狀態(tài)

配置完成后,稍等片刻,即可在慢查詢分析平臺(tái)查看該庫(kù)的慢查詢?nèi)罩尽?/p>

8、開(kāi)啟慢查詢自動(dòng)郵件推送

慢查詢自動(dòng)推送是指定時(shí)將系統(tǒng)收集到的慢查詢TOP數(shù)據(jù)定時(shí)推送給相應(yīng)開(kāi)發(fā)人員或者DBA進(jìn)行優(yōu)化,不需要在每臺(tái)數(shù)據(jù)庫(kù)上部署腳本。

MySQL慢查詢自動(dòng)推送通過(guò)計(jì)劃任務(wù)(crontab)完成。如果需要推送,則需要在監(jiān)控機(jī)(lepus所在主機(jī))部署如下計(jì)劃任務(wù)。

——注1:www.xxx.com請(qǐng)?zhí)鎿Q成您自己的lepus監(jiān)控WEB訪問(wèn)地址,以下只是做一個(gè)示范,請(qǐng)勿照搬。

——注2:若沒(méi)有l(wèi)inks命令,需要安裝:yum -y install

links

示例:

lepus所在的監(jiān)控機(jī)執(zhí)行:links

http://118.178.191.219:81/index.php/task/send_mysql_slowquery_mail

此時(shí)會(huì)在你配置的郵件中收到慢查詢的推送信息。

crontab中的示例:

00 08 * * * links

http://www.xxxx.com/index.php/task/send_mysql_slowquery_mail > /dev/null

2>&1

我的crontab內(nèi)容:

*/5 * * * * /usr/bin/links

http://118.178.191.219:81/index.php/lp_mysql/slowquery > /dev/null

2>&1

計(jì)劃任務(wù)部署完成后,則會(huì)按照計(jì)劃任務(wù)配置的時(shí)間將慢查詢推送給對(duì)應(yīng)人員。

慢查詢推送的郵件人員需要在MySQL主機(jī)配置里面設(shè)置即可,郵箱留空則該數(shù)據(jù)庫(kù)主機(jī)不會(huì)發(fā)送慢查詢推送。

部署完成后,在計(jì)劃任務(wù)的時(shí)間到達(dá),您就可以看到推送的慢查詢郵件了。

郵件格式和內(nèi)容如下所示:

參考計(jì)劃任務(wù)的書(shū)寫(xiě):0 8 * * * curl

http://118.178.191.219:81/index.php/task/send_mysql_slowquery_mail >/dev/null

2>&1

測(cè)試SQL:

1、創(chuàng)建兩張表:

part_tab(分區(qū)表)、no_part_tab(普通表)

DROP TABLE IF

EXISTS part_tab;

CREATE TABLE

part_tab(

c1 int

default NULL,

c2

varchar(30) default NULL,

c3 date not

null)

PARTITION BY

RANGE(year(c3))

(PARTITION p0 VALUES LESS THAN (1995)

,

PARTITION p1

VALUES LESS THAN (1996) ,

PARTITION p2

VALUES LESS THAN (1997) ,

PARTITION p3

VALUES LESS THAN (1998) ,

PARTITION p4

VALUES LESS THAN (1999) ,

PARTITION p5

VALUES LESS THAN (2000) ,

PARTITION p6

VALUES LESS THAN (2001) ,

PARTITION p7

VALUES LESS THAN (2002) ,

PARTITION p8

VALUES LESS THAN (2003) ,

PARTITION p9

VALUES LESS THAN (2004) ,

PARTITION p10

VALUES LESS THAN (2010) ,

PARTITION p11

VALUES LESS THAN (MAXVALUE));

DROP TABLE IF

EXISTS no_part_tab;

CREATE TABLE

no_part_tab(

c1 int

default NULL,

c2

varchar(30) default NULL,

c3 date not

null);

2、用存儲(chǔ)過(guò)程插入800萬(wàn)條數(shù)據(jù)

delimiter

$$

drop

procedure if exists `load_part_tab` $$

CREATE

PROCEDURE load_part_tab()

begin

declare v int

default 0;

while v <

8000000

do

insert into

part_tab

values

(v,'testingpartitions',adddate('1995-01-01',(rand(v)*36520)mod

3652));

set v = v +

1;

end

while;

end$$

delimiter

;

call

load_part_tab();

總結(jié)

以上是生活随笔為你收集整理的lepus mysql 慢查询_天兔 -Lepus 慢查询分析平台配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。