percona-toolkit之pt-kill 殺失落mysql查詢或銜接的辦法。本站提示廣大學習愛好者:(percona-toolkit之pt-kill 殺失落mysql查詢或銜接的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是percona-toolkit之pt-kill 殺失落mysql查詢或銜接的辦法正文
pt-kill 是一個異常簡略的 殺mysql線程和查詢的 對象。 重要是為了避免一些長的查詢 長時光占用 體系資本,而對線上營業形成影響的情形。
重要感化:
從show processlist 中獲得知足前提的銜接或許從包括show processlist的文件中讀取知足前提的銜接並打印或許殺失落或許履行其他操作。
我們這裡重要用來避免某些select操作時光太長,從而影響其他線上SQL。
裝置:
裝置percona-toolkit便可
應用典范:
pt-kill --log-dsn D=testdb,t=kill_log --create-log-table --host=host2 --user=root --password=root --port=3306 --busy-time=10 --print --kill-query --match-info "SELECT|select" --victims all
也可以使用--config寫設置裝備擺設文件:
pt-kill --config tmp.txt --log-dsn D=testdb,t=kill_log --create-log-table --match-info "SELECT|select" --victims all
notes: --match-info 是辨別年夜小寫的,婚配SELECT也就意味著對select沒法婚配,是以應用"SELECT|select"包括年夜小寫
cat tmp.txt
host=host2
user=root
password=root
port=3306
busy-time=10
print
kill-query
該應用典范的感化:
假如不存在testdb.kill_log表,則創立該表,然後將一切pt-kill的操作記載到該表中。對一切查詢時光跨越10秒的SELECT語句停止print顯示出來,同時會kill該query。
pt-kill 默許檢討距離為5秒
說明:
--log-dsn D=testdb,t=kill_log --create-log-table 是創立testdb.kill_log表,以後將pt-kill操作的日記記載在表中
--busy-time=10 履行時光跨越10秒的
--print --kill-query 舉措是 停止print和 kill query,除此以外的舉措還有kill 銜接:--kill
--match-info 'SELECT|select' 只婚配SELECT 語句
其他一些主要的參數說明:
--interval 運轉檢討query的距離,
--victim
oldest (默許值),只殺最老的查詢(最早提議的)。這是避免被查殺是否是真的長時光運轉的查詢,他們只是歷久期待。這類種婚配按時光查詢,殺逝世一個時光最高值。
all 殺失落一切知足的線程
all-but-oldest 殺逝世一切,但最長的保存不殺
--busy-time 批次查詢已運轉的時光跨越這個時光的線程;
--idle-time 殺失落sleep 了若干時光的銜接線程,必需在--match-command sleep時才有用
接上去這一組參數,是針對show processlist中響應列的 疏忽 或 婚配:
--ignore-command / --match-command
(command有:Query、Sleep、Binlog Dump、Connect、Delayed insert、Execute、Fetch、Init DB、Kill、Prepare、Processlist、Quit、Reset stmt、Table Dump)
--ignore-db / --match-db
--ignore-host / --match-host
--ignore-info / --match-info
(info則可使用select、update、insert、delete來停止婚配,並可以使用"|"停止多項婚配,如"select|SELECT|delete|DELETE|update|UPDATE"
--ignore-state / --match-state
(state類型有:Locked、login、copy to tmp table、Copying to tmp table、Copying to tmp table on disk、Creating tmp table、executing、Reading from net、Sending data、Sorting for order、Sorting result、Table lock、Updating)
--ignore-user / --match-user
Action:
--kill 殺失落銜接而且加入
--kill-query 只殺失落銜接履行的語句,然則線程不會被終止
--print 打印知足前提的語句
應用感觸感染:
原來是想用該對象 監控多個mysql實例 ,然則發明--host 只能填寫一個,多寫了也沒感化。 所以 這個對象 起一個過程後,只能監控一個mysql實例, 這點有點不是太便利。小我感到應當無方法可以或許完成 多實例監控和查殺的。 這裡就沒做深刻研討了, 有曉得的同伙,請留言哦。