Ito ang command na pt-killp na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
pt-kill - Patayin ang mga query sa MySQL na tumutugma sa ilang pamantayan.
SINOPSIS
Paggamit: pt-kill [OPTIONS] [DSN]
Pinapatay ng pt-kill ang mga koneksyon sa MySQL. Kumokonekta ang pt-kill sa MySQL at nakakakuha ng mga query mula sa SHOW
PROCESSLIST kung walang FILE na ibinigay. Kung hindi, nagbabasa ito ng mga query mula sa isa o higit pang FILE na
naglalaman ng output ng SHOW PROCESSLIST. Kung ang FILE ay -, ang pt-kill ay bumabasa mula sa STDIN.
Patayin ang mga query na tumatakbo nang mas mahaba kaysa sa 60s:
pt-kill --busy-time 60 --kill
Mag-print, huwag pumatay, mga query na tumatakbo nang mas mahaba kaysa sa 60s:
pt-kill --busy-time 60 --print
Suriin ang mga proseso ng pagtulog at patayin ang lahat ng ito tuwing 10s:
pt-kill --match-command Sleep --kill --victims all --interval 10
I-print ang lahat ng proseso sa pag-log in:
pt-kill --match-state login --print --biktima lahat
Tingnan kung aling mga query sa processlist ngayon ang tutugma:
mysql -e "SHOW PROCESSLIST" > proclist.txt
pt-kill --test-matching proclist.txt --busy-time 60 --print
PELIGRASO
Ang Percona Toolkit ay mature, napatunayan sa totoong mundo, at mahusay na nasubok, ngunit lahat ng database
Ang mga tool ay maaaring magdulot ng panganib sa system at sa database server. Bago gamitin ang tool na ito,
mangyaring:
· Basahin ang dokumentasyon ng tool
· Suriin ang kilalang "BUGS" ng tool
· Subukan ang tool sa isang server na hindi produksyon
· I-backup ang iyong production server at i-verify ang mga backup
DESCRIPTION
Kinukuha ng pt-kill ang mga query mula sa SHOW PROCESSLIST, sinasala ang mga ito, at pagkatapos ay pumatay o
nagpi-print sa kanila. Ito ay kilala rin bilang isang "slow query sniper" sa ilang mga lupon. Ang ideya ay upang
panoorin ang mga query na maaaring kumonsumo ng masyadong maraming mapagkukunan, at patayin ang mga ito.
Para sa maikli, pinag-uusapan natin ang tungkol sa pagpatay ng mga query, ngunit maaaring i-print lamang ang mga ito (o iba pa
aksyon sa hinaharap) depende sa kung anong mga opsyon ang ibibigay.
Karaniwang kumokonekta ang pt-kill sa MySQL upang makakuha ng mga query mula sa SHOW PROCESSLIST. Bilang kahalili,
mababasa nito ang SHOW PROCESSLIST na output mula sa mga file. Sa kasong ito, hindi kumonekta ang pt-kill
MySQL at "--kill" ay walang epekto. Dapat mong gamitin ang "--print" sa halip kapag nagbabasa ng mga file.
Ang kakayahang magbasa ng file na may "--test-matching" ay nagbibigay-daan sa iyong makuha ang SHOW PROCESSLIST
at subukan ito sa ibang pagkakataon gamit ang pt-kill upang matiyak na ang iyong mga tugma ay pumapatay sa mga tamang query.
Maraming espesyal na panuntunan ang dapat sundin, gaya ng "huwag patayin ang mga thread ng pagtitiklop," kaya
mag-ingat na huwag pumatay ng isang bagay na mahalaga!
Dalawang mahalagang opsyon na dapat malaman ay "--busy-time" at "--victims". Una, samantalang karamihan
tumutugma ang mga pagpipilian sa tugma/filter sa kanilang katumbas na halaga mula sa SHOW PROCESSLIST (hal
Ang "--match-command" ay tumutugma sa halaga ng Command ng query), ang halaga ng Oras ay tinutugma ng
"--busy-time". Tingnan din ang "--interval".
Pangalawa, kinokontrol ng "--victims" kung aling mga tumutugmang query mula sa bawat klase ang papatayin. Sa pamamagitan ng
default, ang tumutugmang query na may pinakamataas na halaga ng Oras ay pinapatay (ang pinakalumang query). Tingnan mo
ang susunod na seksyon, "GROUP, MATCH AND KILL", para sa higit pang mga detalye.
Kadalasan kailangan mong tumukoy ng kahit isang "--match" na opsyon, kung hindi, walang mga query na tutugma.
O, maaari mong tukuyin ang "--match-all" upang tumugma sa lahat ng mga query na hindi binabalewala ng isang
"--ignore" na opsyon.
GRUPO, MATCH AT Napatay
Ang mga query ay dumaan sa ilang hakbang upang matukoy kung alin ang eksaktong papatayin (o
naka-print--anumang aksyon ang tinukoy). Ang pag-unawa sa mga hakbang na ito ay makakatulong sa iyong tumugma
tiyak ang mga query na gusto mo.
Ang unang hakbang ay ang pagpapangkat ng mga query sa mga klase. Ang "--group-by" na opsyon ay kumokontrol
pagpapangkat. Bilang default, walang halaga ang opsyong ito kaya lahat ng query ay pinagsama-sama sa isa
default na klase. Ang lahat ng uri ng pagtutugma at pag-filter (ang susunod na hakbang) ay inilalapat sa bawat klase.
Samakatuwid, maaaring kailanganin mong pangkatin ang mga query upang tumugma/mag-filter ng ilang klase ngunit hindi
iba pa.
Ang ikalawang hakbang ay tumutugma. Ang pagtutugma ay nagpapahiwatig ng pag-filter dahil kung ang isang query ay hindi tumutugma
ilang pamantayan, inalis ito sa klase nito. Ang pagtutugma ay nangyayari para sa bawat klase. Una,
ang mga query ay sinasala mula sa kanilang klase ng iba't ibang "Query Match" na mga opsyon tulad ng
"--match-user". Pagkatapos, ang buong klase ay sinasala ng iba't ibang opsyon na "Mga Pagtutugma ng Klase."
tulad ng "--query-count".
Ang ikatlong hakbang ay ang pagpili ng biktima, iyon ay, na tumutugma sa mga query sa bawat klase upang patayin.
Ito ay kinokontrol ng opsyong "--victims". Bagama't maraming query sa isang klase ang maaaring tumugma,
maaaring gusto mo lang patayin ang pinakalumang query, o lahat ng query, atbp.
Ang pangatlo at huling hakbang ay ang gumawa ng ilang aksyon sa lahat ng tumutugmang query mula sa lahat ng klase.
Tinutukoy ng mga opsyon na "Mga Pagkilos" kung aling mga aksyon ang isasagawa. Sa hakbang na ito, walang
higit pang mga klase, isang listahan lamang ng mga query na papatayin, i-print, atbp.
oUTPUT
Kung "--kill" lang ang ibibigay, walang output. Kung "--print" lang ang ibibigay, a
timestamped KILL statement kung naka-print para sa bawat query na papatayin sana, tulad ng:
# 2009-07-15T15:04:01 KILL 8 (Query 42 sec) SELECT * FROM huge_table
Ang linya ay nagpapakita ng timestamp, ang Id ng query (8), ang Oras nito (42 segundo) at ang Impormasyon nito (karaniwang
ang query SQL).
Kung ang parehong "--kill" at "--print" ay ibinigay, pagkatapos ay ang pagtutugma ng mga query ay papatayin at isang linya para sa
bawat isa tulad ng nasa itaas ay nakalimbag.
Ang anumang utos na pinaandar ng "--execute-command" ay responsable para sa sarili nitong output at pag-log.
Matapos maisakatuparan, ang pt-kill ay walang kontrol o pakikipag-ugnayan sa utos.
Opsyon
Tukuyin ang hindi bababa sa isa sa "--kill", "--kill-query", "--print", "--execute-command" o
"--tumigil ka".
Ang "--any-busy-time" at "--each-busy-time" ay kapwa eksklusibo.
Ang "--kill" at "--kill-query" ay kapwa eksklusibo.
Ang "--daemonize" at "--test-matching" ay kapwa eksklusibo.
Tumatanggap ang tool na ito ng mga karagdagang argumento sa command-line. Sumangguni sa "SYNOPSIS" at paggamit
impormasyon para sa mga detalye.
--magtanong-pasa
Mag-prompt para sa isang password kapag kumokonekta sa MySQL.
--charset
maikling anyo: -A; uri: string
Default na set ng character. Kung ang value ay utf8, itatakda ang binmode ng Perl sa STDOUT sa utf8,
ipinapasa ang mysql_enable_utf8 na opsyon sa DBD::mysql, at pinapatakbo ang SET NAMES UTF8 pagkatapos
pagkonekta sa MySQL. Ang anumang iba pang value ay nagtatakda ng binmode sa STDOUT nang walang utf8 layer,
at nagpapatakbo ng SET NAMES pagkatapos kumonekta sa MySQL.
--config
uri: Array
Basahin itong listahan na pinaghihiwalay ng kuwit ng mga config file; kung tinukoy, ito dapat ang una
opsyon sa command line.
--create-log-table
Lumikha ng talahanayan na "--log-dsn" kung wala ito.
Ang pagpipiliang ito ay nagiging sanhi ng talahanayan na tinukoy ng "--log-dsn" upang malikha gamit ang default
istraktura na ipinapakita sa dokumentasyon para sa opsyong iyon.
--demonyo
Fork sa background at tanggalin mula sa shell. POSIX operating system lang.
--database
maikling anyo: -D; uri: string
Ang database na gagamitin para sa koneksyon.
--defaults-file
maikling anyo: -F; uri: string
Basahin lamang ang mga pagpipilian sa mysql mula sa ibinigay na file. Dapat kang magbigay ng ganap na pathname.
--filter
uri: string
Itapon ang mga kaganapan kung saan ang Perl code na ito ay hindi nagbabalik ng totoo.
Ang pagpipiliang ito ay isang string ng Perl code o isang file na naglalaman ng Perl code na naipon
sa isang subroutine na may isang argumento: $event. Ito ay isang hashref. Kung ang ibinigay na halaga
ay isang nababasang file, pagkatapos ay binabasa ng pt-kill ang buong file at ginagamit ang mga nilalaman nito bilang ang
code. Ang file ay hindi dapat maglaman ng shebang (#!/usr/bin/perl) linya.
Kung ang code ay bumalik na true, ang chain ng mga callback ay magpapatuloy; kung hindi ay matatapos na. Ang
ang code ay ang huling pahayag sa subroutine maliban sa "return $event". Ang
subroutine na template ay:
sub { $event = shift; i-filter && ibalik ang $event; }
Ang mga filter na ibinigay sa command line ay nakabalot sa loob ng mga panaklong tulad ng "( filter
)". Para sa mga kumplikado, multi-line na mga filter, dapat mong ilagay ang code sa loob ng isang file upang ito ay
hindi balot sa loob ng panaklong. Sa alinmang paraan, ang filter ay dapat gumawa ng syntactically
wastong code na ibinigay sa template. Halimbawa, isang if-else branch na ibinigay sa command
hindi magiging wasto ang linya:
--filter 'if () { } else { }' # WRONG
Dahil ito ay ibinigay sa command line, ang if-else branch ay balot sa loob
panaklong na hindi wasto ayon sa sintaks. Kaya upang makamit ang isang bagay na mas kumplikado
tulad nito ay mangangailangan ng paglalagay ng code sa isang file, halimbawa filter.txt:
aking $event_ok; kung (...) { $event_ok=1; } iba { $event_ok=0; } $event_ok
Pagkatapos ay tukuyin ang "--filter filter.txt" para basahin ang code mula sa filter.txt.
Kung hindi mag-compile ang filter code, mamamatay ang pt-kill nang may error. Kung ang filter code
ay nag-compile, ang isang error ay maaari pa ring mangyari sa runtime kung ang code ay sumusubok na gumawa ng isang bagay
mali (tulad ng pattern na tumutugma sa isang hindi natukoy na halaga). Ang pt-kill ay hindi nagbibigay ng anuman
mga pananggalang kaya mag-code nang maingat!
Pinahihintulutan ang code na magkaroon ng mga side effect (upang baguhin ang $event).
--group-by
uri: string
Ilapat ang mga tugma sa bawat klase ng mga query na naka-grupo ayon sa SHOW PROCESSLIST column na ito. Sa
karagdagan sa mga pangunahing column ng SHOW PROCESSLIST (user, host, command, state, atbp.),
maaaring itugma ang mga query sa pamamagitan ng "fingerprint" na kumukuha ng SQL query sa "Impormasyon"
hanay.
Bilang default, hindi nakagrupo ang mga query, kaya nalalapat ang mga tugma at pagkilos sa lahat ng query.
Ang pagpapangkat ay nagbibigay-daan sa mga tugma at pagkilos na malapat sa mga klase ng mga katulad na query, kung mayroon man
mga tanong sa tugma sa klase.
Halimbawa, ang pag-detect ng cache stampedes (tingnan ang "all-but-oldest" sa ilalim ng "--victims" para sa isang
paliwanag ng terminong iyon) ay nangangailangan na ang mga query ay nakagrupo ayon sa katangiang "arg".
Lumilikha ito ng mga klase ng magkatulad na query (natanggalan ng mga komento). Kaya ang mga tanong na "PUMILI
c FROM t WHERE id=1" at "SELECT c FROM t WHERE id=1" ay pinagsama-sama sa parehong klase,
ngunit ang query c<"SELECT c FROM t WHERE id=3"> ay hindi magkapareho sa unang dalawang query kaya
ito ay nakapangkat sa ibang klase. Pagkatapos ay kapag ang "--biktima" "lahat-ngunit-pinakamatanda" ay tinukoy,
lahat maliban sa pinakalumang query sa bawat klase ay pinapatay para sa bawat klase ng mga query na iyon
tumutugma sa pamantayan ng pagtutugma.
- Tumulong
Ipakita ang tulong at lumabas.
--host
maikling anyo: -h; uri: string; default: localhost
Kumonekta sa host.
--pagitan
uri: oras
Gaano kadalas suriin ang mga query na papatayin. Kung ang "--busy-time" ay hindi ibinigay, kung gayon ang
ang default na pagitan ay 30 segundo. Kung hindi, ang default ay kalahating kasingdalas ng "--busy-time."
Kung ang parehong "--interval" at "--busy-time" ay ibinigay, kung gayon ang tahasang "--interval" na halaga
Ginagamit.
Tingnan din ang "--run-time".
--log
uri: string
I-print ang lahat ng output sa file na ito kapag na-demonize.
--log-dsn
uri: DSN
I-store ang bawat query na pinatay sa DSN na ito.
Tinutukoy ng argumento ang isang talahanayan upang mag-imbak ng lahat ng mga napatay na query. Ang DSN ay pumasa sa dapat
magkaroon ng mga pagpipilian sa databse (D) at talahanayan (t). Ang talahanayan ay dapat magkaroon ng hindi bababa sa sumusunod
mga hanay. Maaari kang magdagdag ng higit pang mga column para sa iyong sariling mga espesyal na layunin, ngunit hindi ito magiging
ginamit ng pt-kill. Ang sumusunod na CREATE TABLE na kahulugan ay ginagamit din para sa
"--create-log-table". MAGIC_create_log_table:
GUMAWA NG TABLE kill_log (
kill_id int(10) hindi nilagdaan NOT NULL AUTO_INCREMENT,
server_id bigint(4) HINDI NULL DEFAULT '0',
timestamp DATETIME,
dahilan TEXT,
kill_error TEXT,
Id bigint(4) HINDI NULL DEFAULT '0',
gumagamit varchar(16) HINDI NULL DEFAULT '',
Paghandaan varchar(64) HINDI NULL DEFAULT '',
db varchar(64) DEFAULT NULL,
Utos varchar(16) HINDI NULL DEFAULT '',
oras int(7) HINDI NULL DEFAULT '0',
estado varchar(64) DEFAULT NULL,
Impormasyon longtext,
Oras_ms bigint(21) DEFAULT '0', # NOTE, TODO: kasalukuyang hindi ginagamit
PRIMARY KEY (kill_id)
) DEFAULT CHARSET=utf8
--password
maikling anyo: -p; uri: string
Password na gagamitin kapag kumokonekta. Kung ang password ay naglalaman ng mga kuwit, dapat silang i-escape
na may backslash: "exam\,ple"
--pid
uri: string
Lumikha ng ibinigay na PID file. Hindi magsisimula ang tool kung mayroon nang PID file at
iba ang PID na nilalaman nito kaysa sa kasalukuyang PID. Gayunpaman, kung ang PID file
umiiral at ang PID na nilalaman nito ay hindi na tumatakbo, ang tool ay magpapatungan sa PID
file na may kasalukuyang PID. Awtomatikong tinanggal ang PID file kapag lumabas ang tool.
--port
maikling anyo: -P; uri: int
Port number na gagamitin para sa koneksyon.
--query-id
Nagpi-print ng ID ng query na kakapatay lang. Ito ay katumbas ng "ID" na output
ng pt-query-digest. Nagbibigay-daan ito sa pag-cross-reference sa output ng parehong mga tool.
Halimbawa:
Query ID 0xE9800998ECF8427E
Tandaan na ito ay isang digest (o hash) ng "fingerprint" ng query, kaya ang mga query ng
parehong form ngunit may iba't ibang mga halaga ay magkakaroon ng parehong ID. Tingnan ang pt-query-digest para sa
karagdagang informasiyon.
--rds
Nagsasaad na ang instance na pinag-uusapan ay nasa Amazon RDS. Bilang default, pinapatakbo ng pt-kill ang MySQL
command na "kill" para sa "--kill" at "kill query" "--kill-query". Sa RDS itong dalawang ito
hindi available ang mga command at pinapalitan ng mga function call. Binabago ang opsyong ito
"--kill" para gamitin ang "TUMAWAG sa mysql.rds_kill(thread-id)" sa halip at "--kill-query" para gamitin
"TUMAWAG sa mysql.rds_kill_query(thread-id)"
--run-time
uri: oras
Gaano katagal tumakbo bago lumabas. Bilang default, ang pt-kill ay tumatakbo magpakailanman, o hanggang sa proseso nito
ay pinapatay o pinahinto sa pamamagitan ng paglikha ng isang "--sentinel" na file. Kung ang pagpipiliang ito ay
tinukoy, tumatakbo ang pt-kill para sa tinukoy na tagal ng oras at natutulog ng "--interval"
segundo sa pagitan ng bawat tseke ng PROCESSLIST.
--sentinel
uri: string; default: /tmp/pt-kill-sentinel
Lumabas kung umiiral ang file na ito.
Ang pagkakaroon ng file na tinukoy ng "--sentinel" ay magiging sanhi ng lahat ng tumatakbong mga pagkakataon ng
pt-kill para lumabas. Maaari mong mahanap ito na madaling gamitin upang ihinto ang mga trabaho ng cron nang maganda kung kinakailangan.
Tingnan din ang "--stop".
--set-vars
uri: Array
Itakda ang mga variable ng MySQL sa listahang pinaghihiwalay ng kuwit na ito ng mga pares na "variable=value".
Bilang default, itinatakda ng tool ang:
wait_timeout=10000
Ino-override ng mga variable na tinukoy sa command line ang mga default na ito. Halimbawa,
ang pagtukoy ng "--set-vars wait_timeout=500" ay na-override ang default na halaga ng 10000.
Ang tool ay nagpi-print ng babala at magpapatuloy kung ang isang variable ay hindi maitakda.
--saksakan
maikling porma; uri: string
Socket file na gagamitin para sa koneksyon.
--tumigil ka
Ihinto ang pagpapatakbo ng mga instance sa pamamagitan ng paggawa ng "--sentinel" na file.
Nagiging sanhi ng pt-kill upang lumikha ng sentinel file na tinukoy ng "--sentinel" at lumabas. Ito
ay dapat magkaroon ng epekto ng pagpapahinto sa lahat ng tumatakbong mga pagkakataon na nanonood ng pareho
sentinel file.
--[no]strip-comments
default: oo
Alisin ang mga komento ng SQL mula sa mga query sa column ng Info ng PROCESSLIST.
--gumagamit
maikling anyo: -u; uri: string
User para sa pag-login kung hindi kasalukuyang user.
--bersyon
Ipakita ang bersyon at lumabas.
--[no] version-check
default: oo
Tingnan ang pinakabagong bersyon ng Percona Toolkit, MySQL, at iba pang mga program.
Isa itong karaniwang feature na "awtomatikong suriin ang mga update", na may dalawang karagdagang
mga tampok. Una, sinusuri ng tool ang bersyon ng iba pang mga program sa lokal na sistema sa
karagdagan sa sarili nitong bersyon. Halimbawa, sinusuri nito ang bersyon ng bawat MySQL server
kumokonekta ito sa, Perl, at sa Perl module na DBD::mysql. Pangalawa, ito ay nagsusuri at nagbabala
tungkol sa mga bersyon na may mga kilalang problema. Halimbawa, ang MySQL 5.5.25 ay may kritikal na bug at
ay muling inilabas bilang 5.5.25a.
Ang anumang mga update o kilalang problema ay naka-print sa STDOUT bago ang normal na output ng tool.
Ang tampok na ito ay hindi dapat makagambala sa normal na operasyon ng tool.
Para sa karagdagang impormasyon, bisitahin ang .
--mga biktima
uri: string; default: pinakamatanda
Alin sa mga tumutugmang query sa bawat klase ang papatayin. Pagkatapos ng mga klase
tumugma/na-filter, tinutukoy ng opsyong ito kung alin sa mga tumutugmang query sa bawat klase
ay papatayin (o iimprenta, atbp.). Posible ang mga sumusunod na halaga:
pinakalumang
Patayin lamang ang nag-iisang pinakamatandang query. Ito ay upang maiwasan ang pagpatay ng mga query na hindi
talagang long-running, matagal lang silang naghihintay. Inuuri nito ang pagtutugma ng mga query ayon sa
Oras at pinapatay ang may pinakamataas na halaga ng Oras.
lahat Patayin ang lahat ng mga query sa klase.
all-but-oldest
Patayin ang lahat maliban sa pinakalumang query. Ito ang kabaligtaran ng "pinakamatandang" halaga.
Ang halagang ito ay maaaring gamitin upang maiwasan ang "cache stampedes", ang kundisyon kung saan marami
ang magkaparehong mga query ay isinasagawa at lumilikha ng isang backlog habang sinusubukan ng unang query
tapusin. Dahil ang lahat ng mga query ay magkapareho, lahat maliban sa unang query ay pinapatay
na maaari nitong kumpletuhin at punan ang cache.
--wait-after-kill
uri: oras
Maghintay pagkatapos pumatay ng isang query, bago maghanap ng higit pa upang patayin. Ang layunin nito ay
para bigyan ng pagkakataon ang mga naka-block na query na magsagawa, para hindi namin mapatay ang isang query na humaharang
isang grupo ng iba, at pagkatapos ay patayin kaagad ang iba pagkatapos.
--maghintay-bago-pumatay
uri: oras
Maghintay bago pumatay ng query. Ang layunin nito ay magbigay ng "--execute-command" a
pagkakataong makita ang katugmang query at mangalap ng iba pang MySQL o impormasyon ng system bago
ito ay pinatay.
TANONG MATCHES
Ang mga opsyong ito ay nagsasala ng mga query mula sa kanilang mga klase. Kung ang isang query ay hindi tumugma, ito ay aalisin
mula sa klase nito. Ang mga opsyon na "--ignore" ay mauuna. Ang mga tugma para sa command, db,
host, atbp. tumutugma sa mga column na ibinalik ng SHOW PROCESSLIST: Command, db, Host, atbp.
Ang lahat ng pattern na tugma ay case-sensitive bilang default, ngunit maaari silang gawing case-insensitive
sa pamamagitan ng pagtukoy ng regex pattern tulad ng "(?i-xsm:select)".
Tingnan din ang "GROUP, MATCH AND KILL".
--busy-time
uri: oras; pangkat: Query Matches
Itugma ang mga query na tumatakbo nang mas matagal kaysa sa oras na ito. Ang mga tanong ay dapat na
sa Command=Query status. Tumutugma ito sa halaga ng Oras ng query gaya ng iniulat ng SHOW
PROCESSLIST.
--idle-time
uri: oras; pangkat: Query Matches
Itugma ang mga query na hindi gumagana/natutulog nang mas matagal kaysa sa oras na ito. Ang mga tanong
dapat nasa Command=Sleep status. Tumutugma ito sa halaga ng Oras ng query gaya ng iniulat ni
IPAKITA ANG PROCESSLIST.
--ignore-command
uri: string; pangkat: Query Matches
Huwag pansinin ang mga query na ang Command ay tumutugma sa Perl regex na ito.
Tingnan ang "--match-command".
--ignore-db
uri: string; pangkat: Query Matches
Huwag pansinin ang mga query na ang db (database) ay tumutugma sa Perl regex na ito.
Tingnan ang "--match-db".
--ignore-host
uri: string; pangkat: Query Matches
Huwag pansinin ang mga query na ang Host ay tumutugma sa Perl regex na ito.
Tingnan ang "--match-host".
--ignore-info
uri: string; pangkat: Query Matches
Huwag pansinin ang mga query na ang Impormasyon (query) ay tumutugma sa Perl regex na ito.
Tingnan ang "--match-info".
--[no]balewala-sarili
default: oo; pangkat: Query Matches
Huwag patayin ang sariling koneksyon ni pt-kill.
--ignore-state
uri: string; pangkat: Query Matches; default: Naka-lock
Huwag pansinin ang mga query na ang Estado ay tumutugma sa Perl regex na ito. Ang default ay panatilihin ang mga thread
mula sa pagpatay kung sila ay naka-lock naghihintay para sa isa pang thread.
Tingnan ang "--match-state".
--ignore-user
uri: string; pangkat: Query Matches
Huwag pansinin ang mga query na ang user ay tumutugma sa Perl regex na ito.
Tingnan ang "--match-user".
--tugma-lahat
pangkat: Query Matches
Itugma ang lahat ng query na hindi binabalewala. Kung walang binalewala ang mga opsyon na tinukoy, kung gayon
ang bawat query ay tumutugma (maliban sa mga replication thread, maliban kung ang "--replication-threads" ay
tinukoy din). Binibigyang-daan ka ng opsyong ito na tukuyin ang mga negatibong tugma, ibig sabihin, "tugma
bawat tanong maliban..." kung saan ang mga pagbubukod ay tinukoy sa pamamagitan ng pagtukoy ng iba't-ibang
"--ignore" na mga opsyon.
Ang pagpipiliang ito ay hindi kapareho ng "--biktima" "lahat". Ang pagpipiliang ito ay tumutugma sa lahat ng mga query
sa loob ng isang klase, samantalang ang "--victims" "lahat" ay tumutukoy na ang lahat ng tumutugmang mga query sa isang
klase (gayunpaman sila magkatugma) ay papatayin. Karaniwan, gayunpaman, ang dalawa ay ginagamit
magkasama dahil kung, halimbawa, tinukoy mo ang "--victims" "pinakamatanda", kung gayon bagaman lahat
maaaring tumugma ang mga query, ang pinakamatanda lang ang papatayin.
--tugma-utos
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang Command ay tumutugma sa Perl regex na ito.
Ang mga karaniwang halaga ng Command ay:
Tanong
Matulog
Binlog Dump
Ikabit
Naantala ang pagpasok
Isakatuparan
Kunin
Init DB
Pumatay
Maghanda
Listahan ng proseso
Huminto
I-reset ang stmt
Table Dump
Tingnan mohttp://dev.mysql.com/doc/refman/5.1/en/thread-commands.html> para sa buong listahan at
paglalarawan ng mga halaga ng Command.
--tugma-db
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang db (database) ay tumutugma sa Perl regex na ito.
--match-host
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang Host ay tumutugma sa Perl regex na ito.
Ang Host value ay kadalasang kasama sa oras ang port tulad ng "host:port".
--match-info
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang Impormasyon (query) ay tumutugma sa Perl regex na ito.
Ipinapakita ng column ng Info ng processlist ang query na isinasagawa o NULL kung
walang query na ginagawa.
--match-state
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang Estado ay tumutugma sa Perl regex na ito.
Ang mga karaniwang halaga ng Estado ay:
Nakakandado
login
kopyahin sa tmp table
Kinokopya sa tmp table
Kinokopya sa tmp table sa disk
Paglikha ng talahanayan ng tmp
e-execute
Pagbabasa mula sa net
Nagpapadala ng data
Pag-uuri para sa order
Pagsunud na resulta
Ang lock ng lamesa
Ina-update ang
Tingnan mohttp://dev.mysql.com/doc/refman/5.1/en/general-thread-states.html> para buo
listahan at paglalarawan ng mga halaga ng Estado.
--match-user
uri: string; pangkat: Query Matches
Itugma lamang ang mga query na ang User ay tumutugma sa Perl regex na ito.
--replication-threads
pangkat: Query Matches
Payagan ang pagtutugma at pagpatay sa mga thread ng pagtitiklop.
Bilang default, hindi nalalapat ang mga tugma sa mga thread ng pagtitiklop; ibig sabihin, ang mga thread ng pagtitiklop ay
ganap na hindi pinansin. Ang pagtukoy sa opsyong ito ay nagbibigay-daan sa mga tugma na magkatugma (at posibleng
pumatay) mga thread ng pagtitiklop sa mga panginoon at alipin.
--test-matching
uri: array; pangkat: Query Matches
Mga file na may mga snapshot ng processlist upang subukan ang mga pagpipilian sa pagtutugma. Simula nung matching
Ang mga opsyon ay maaaring maging kumplikado, maaari mong i-save ang mga snapshot ng processlist sa mga file, pagkatapos ay subukan
mga pagpipilian sa pagtutugma laban sa mga query sa mga file na iyon.
Hindi pinapagana ng opsyong ito ang "--run-time", "--interval", at "--[no]ignore-self".
CLASS MATCHES
Nalalapat ang mga tugmang ito sa buong klase ng query. Ang mga klase ay nilikha sa pamamagitan ng pagtukoy sa
"--group-by" na opsyon, kung hindi ang lahat ng mga query ay miyembro ng isang solong, default na klase.
Tingnan din ang "GROUP, MATCH AND KILL".
--anumang-busy-time
uri: oras; pangkat: Class Matches
Itugma ang klase ng query kung ang anumang query ay tumatakbo nang mas matagal kaysa sa oras na ito. "Mas matagal
than" ay nangangahulugan na kung tinukoy mo ang 10, halimbawa, ang klase ay tutugma lamang kung mayroon
hindi bababa sa isang query na tumatakbo nang higit sa 10 segundo.
Tingnan ang "--each-busy-time" para sa higit pang mga detalye.
--bawat-abala-oras
uri: oras; pangkat: Class Matches
Itugma ang klase ng query kung ang bawat query ay tumatakbo nang mas matagal kaysa sa oras na ito. "Mas matagal
than" ay nangangahulugan na kung tinukoy mo ang 10, halimbawa, ang klase ay tutugma lamang kung ang bawat isa at
ang bawat query ay tumatakbo nang higit sa 10 segundo.
Tingnan din ang "--any-busy-time" (upang tumugma sa isang klase kung ANUMANG query ay tumatakbo nang mas matagal kaysa
ang tinukoy na oras) at "--busy-time".
--query-count
uri: int; pangkat: Class Matches
Itugma ang klase ng query kung mayroon itong kahit ganito karaming query. Kapag ang mga query ay pinagsama-sama sa
mga klase sa pamamagitan ng pagtukoy ng "--group-by", ang pagpipiliang ito ay nagdudulot ng mga tugma na nalalapat lamang sa
mga klase na may kahit ganito karaming query. Kung ang "--group-by" ay hindi tinukoy kung gayon ito
ang opsyon ay nagdudulot ng mga tugma upang mailapat lamang kung mayroong hindi bababa sa ganitong karaming mga query sa
buong SHOW PROCESSLIST.
--verbose
maikling anyo: -v
Mag-print ng impormasyon sa STDOUT tungkol sa kung ano ang ginagawa.
MGA PAGKILOS
Ginagawa ang mga pagkilos na ito para sa bawat tumutugmang query mula sa lahat ng klase. Ang mga aksyon ay ginawa
sa ganitong pagkakasunud-sunod: "--print", "--execute-command", "--kill"/"--kill-query". Pinapayagan ng order na ito
"--execute-command" para makita ang output ng "--print" at ang query dati
"--kill"/"--kill-query". Maaaring makatulong ito dahil hindi pumasa ang pt-kill
impormasyon sa "--execute-command".
Tingnan din ang "GROUP, MATCH AND KILL".
--execute-command
uri: string; pangkat: Mga aksyon
Isagawa ang utos na ito kapag tumugma ang isang query.
Matapos maisakatuparan ang utos, ang pt-kill ay walang kontrol dito, kaya ang utos ay
responsable para sa sarili nitong pangangalap ng impormasyon, pag-log, agwat, atbp. Ang utos ay
Isinasagawa sa tuwing tumutugma ang isang query, kaya mag-ingat na ang utos ay kumikilos nang maayos kapag
maraming mga pagkakataon ang pinapatakbo. Walang impormasyon mula sa pt-kill na ipinapasa sa command.
Tingnan din ang "--wait-before-kill".
--patayin
pangkat: Mga aksyon
Patayin ang koneksyon para sa pagtutugma ng mga query.
Ginagawa ng pagpipiliang ito ang pt-kill na patayin ang mga koneksyon (aka mga proseso, mga thread) na mayroon
tumutugmang mga query. Gamitin ang "--kill-query" kung gusto mo lang patayin ang mga indibidwal na query at
hindi ang kanilang mga koneksyon.
Maliban kung ang "--print" ay ibinigay din, walang ibang impormasyon ang naka-print na nagpapakita na ang pt-
kill matched at pumatay sa isang query.
Tingnan din ang "--wait-before-kill" at "--wait-after-kill".
--kill-query
pangkat: Mga aksyon
Patayin ang mga katugmang query.
Ang pagpipiliang ito ay gumagawa ng pt-kill kill na tumutugmang mga query. Nangangailangan ito ng MySQL 5.0 o mas bago.
Hindi tulad ng "--kill" na pumapatay sa koneksyon para sa pagtutugma ng mga query, ang opsyong ito lang
pinapatay ang query, hindi ang koneksyon nito.
pangkat: Mga aksyon
Mag-print ng KILL statement para sa pagtutugma ng mga query; hindi talaga pumapatay ng mga query.
Kung gusto mo lang makita kung aling mga query ang tumutugma at papatayin nang wala talaga
pagpatay sa kanila, tukuyin ang "--print". Para sa parehong pumatay at mag-print ng mga tumutugmang query, tukuyin
parehong "--kill" at "--print".
DNS Opsyon
Ang mga opsyong DSN na ito ay ginagamit upang lumikha ng isang DSN. Ang bawat opsyon ay ibinibigay tulad ng "option=value".
Ang mga opsyon ay case-sensitive, kaya ang P at p ay hindi magkaparehong opsyon. hindi pwede
whitespace bago o pagkatapos ng "=" at kung ang value ay naglalaman ng whitespace dapat itong sipi.
Ang mga opsyon sa DSN ay pinaghihiwalay ng kuwit. Tingnan ang percona-toolkit manpage para sa buong detalye.
· AT
dsn: charset; kopya: oo
Default na set ng character.
· D
dsn: database; kopya: oo
Default na database.
· F
dsn: mysql_read_default_file; kopya: oo
Basahin lamang ang mga default na opsyon mula sa ibinigay na file
· H
dsn: host; kopya: oo
Kumonekta sa host.
· p
dsn: password; kopya: oo
Password na gagamitin kapag kumokonekta. Kung ang password ay naglalaman ng mga kuwit, dapat silang i-escape
na may backslash: "exam\,ple"
· P
dsn: port; kopya: oo
Port number na gagamitin para sa koneksyon.
· S
dsn: mysql_socket; kopya: oo
Socket file na gagamitin para sa koneksyon.
· ikaw
dsn: gumagamit; kopya: oo
User para sa pag-login kung hindi kasalukuyang user.
· t
Talahanayan upang mag-log in ng mga aksyon, kung dumaan sa --log-dsn.
Kapaligiran
Ang environment variable na "PTDEBUG" ay nagbibigay-daan sa verbose debugging na output sa STDERR. Upang paganahin
pag-debug at pagkuha ng lahat ng output sa isang file, patakbuhin ang tool tulad ng:
PTDEBUG=1 pt-kill ... > FILE 2>&1
Mag-ingat: ang pag-debug ng output ay malaki at maaaring makabuo ng ilang megabytes ng output.
SYSTEM MGA KINAKAILANGAN
Kailangan mo ng Perl, DBI, DBD::mysql, at ilang mga pangunahing pakete na dapat i-install sa anumang
makatwirang bagong bersyon ng Perl.
Gumamit ng pt-killp online gamit ang mga serbisyo ng onworks.net