程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> percona-toolkit之pt-kill 殺失落mysql查詢或銜接的辦法

percona-toolkit之pt-kill 殺失落mysql查詢或銜接的辦法

編輯:MySQL綜合教程

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實例, 這點有點不是太便利。小我感到應當無方法可以或許完成 多實例監控和查殺的。  這裡就沒做深刻研討了, 有曉得的同伙,請留言哦。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved