Dit is het commando pt-killp dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
pt-kill - Dood MySQL-query's die aan bepaalde criteria voldoen.
KORTE INHOUD
Gebruik: pt-kill [OPTIES] [DSN]
pt-kill doodt MySQL-verbindingen. pt-kill maakt verbinding met MySQL en krijgt vragen van SHOW
VERWERKINGSLIJST als er geen FILE is opgegeven. Anders leest het vragen uit een of meer BESTANDEN die
bevat de uitvoer van SHOW PROCESSLIST. Als FILE - is, leest pt-kill uit STDIN.
Kill query's die langer dan 60 seconden duren:
pt-kill --bezette tijd 60 --kill
Afdrukken, niet doden, zoekopdrachten die langer dan 60 seconden duren:
pt-kill --busy-time 60 --print
Controleer op slaapprocessen en dood ze allemaal elke 10 seconden:
pt-kill --match-command Sleep --kill --slachtoffers allemaal --interval 10
Druk alle inlogprocessen af:
pt-kill --match-state login --print --slachtoffers allemaal
Kijk welke vragen in de proceslijst op dit moment overeenkomen:
mysql -e "TOON PROCESSLIJST" > proclist.txt
pt-kill --test-matching proclist.txt --busy-time 60 --print
RISICO'S
Percona Toolkit is volwassen, bewezen in de echte wereld en goed getest, maar alle databases
tools kunnen een risico vormen voor het systeem en de databaseserver. Voordat u dit hulpmiddel gebruikt,
alstublieft:
· Lees de documentatie van de tool
· Bekijk de bekende "BUGS" van de tool
· Test de tool op een niet-productieserver
· Maak een back-up van uw productieserver en verifieer de back-ups
PRODUCTBESCHRIJVING
pt-kill legt query's vast van SHOW PROCESSLIST, filtert ze en doodt vervolgens or
drukt ze af. Dit wordt in sommige kringen ook wel een "slow query sniper" genoemd. Het idee is om
let op vragen die mogelijk te veel bronnen verbruiken en dood ze.
Kortheidshalve hebben we het over het doden van zoekopdrachten, maar ze kunnen gewoon worden afgedrukt (of een andere
toekomstige actie) afhankelijk van welke opties worden gegeven.
Normaal gesproken maakt pt-kill verbinding met MySQL om vragen te krijgen van SHOW PROCESSLIST. Alternatief,
het kan de uitvoer van SHOW PROCESSLIST uit bestanden lezen. In dit geval maakt pt-kill geen verbinding met
MySQL en "--kill" hebben geen effect. Gebruik in plaats daarvan "--print" bij het lezen van bestanden.
De mogelijkheid om een bestand te lezen met "--test-matching" stelt u in staat om SHOW PROCESSLIST vast te leggen
en test het later met pt-kill om er zeker van te zijn dat uw matches de juiste vragen doden.
Er zijn veel speciale regels die moeten worden gevolgd, zoals "don't kill replication threads", dus
pas op dat je niet iets belangrijks doodt!
Twee belangrijke opties om te weten zijn "--drukke tijd" en "--slachtoffers". Ten eerste, terwijl de meeste
match/filter-opties komen overeen met hun corresponderende waarde van TOON PROCESSLIJST (bijv
"--match-command" komt overeen met de opdrachtwaarde van een query), de tijdwaarde komt overeen met
"--drukke tijd". Zie ook "--interval".
Ten tweede bepaalt "--victims" welke overeenkomende zoekopdrachten van elke klasse worden gedood. Door
standaard wordt de overeenkomende query met de hoogste tijdwaarde gedood (de oudste query). Zien
het volgende gedeelte, "GROEPEREN, MATCHEN EN DODEN", voor meer details.
Gewoonlijk moet u ten minste één "--match"-optie opgeven, anders komen er geen zoekopdrachten overeen.
Of u kunt "--match-all" specificeren om alle zoekopdrachten te matchen die niet worden genegeerd door een
optie "--negeren".
GROEP, MATCH EN KILL
Query's doorlopen verschillende stappen om te bepalen welke precies worden gedood (of
afgedrukt - welke actie dan ook wordt gespecificeerd). Als u deze stappen begrijpt, kunt u matchen
precies de vragen die u wilt.
De eerste stap is het groeperen van query's in klassen. De optie "--groeperen op" regelt
groepering. Deze optie heeft standaard geen waarde, dus alle query's zijn in één gegroepeerd
standaard klasse. Alle soorten matching en filtering (de volgende stap) worden per klasse toegepast.
Daarom moet u mogelijk zoekopdrachten groeperen om bepaalde klassen te matchen/filteren, maar niet
anderen.
De tweede stap is matchen. Overeenkomen impliceert filteren, want als een zoekopdracht niet overeenkomt
sommige criteria, wordt het uit zijn klasse verwijderd. Matching gebeurt voor elke klas. Eerst,
queries worden uit hun klasse gefilterd door de verschillende "Query Matches" opties zoals
"--match-gebruiker". Vervolgens worden hele klassen gefilterd op de verschillende "Class Matches"-opties
zoals "--query-count".
De derde stap is slachtofferselectie, dat wil zeggen welke overeenkomende zoekopdrachten in elke klasse moeten worden gedood.
Dit wordt geregeld door de optie "--slachtoffers". Hoewel veel zoekopdrachten in een klasse kunnen overeenkomen,
misschien wilt u alleen de oudste query of alle query's, enz.
De vierde en laatste stap is om actie te ondernemen op alle overeenkomende zoekopdrachten van alle klassen.
De opties "Acties" specificeren welke acties zullen worden ondernomen. Bij deze stap zijn er geen
meer klassen, slechts een enkele lijst met query's om te doden, af te drukken, enz.
OUTPUT
Als alleen "--kill" wordt gegeven, is er geen uitvoer. Als alleen "--print" wordt gegeven, dan a
KILL-instructie met tijdstempel indien afgedrukt voor elke query die zou zijn gedood, zoals:
# 2009-07-15T15:04:01 KILL 8 (Query 42 sec) SELECTEER * UIT enorme_tafel
De regel toont een tijdstempel, de ID van de query (8), de tijd (42 sec) en de Info (meestal
de query-SQL).
Als zowel "--kill" als "--print" worden gegeven, worden overeenkomende query's gedood en een regel voor
elk zoals die hierboven is afgedrukt.
Elke opdracht die wordt uitgevoerd door "--execute-command" is verantwoordelijk voor zijn eigen uitvoer en logboekregistratie.
Nadat het is uitgevoerd, heeft pt-kill geen controle of interactie met het commando.
OPTIES
Specificeer ten minste één van "--kill", "--kill-query", "--print", "--execute-command" of
"--stop".
"--any-busy-time" en "--elke-busy-time" sluiten elkaar wederzijds uit.
"--kill" en "--kill-query" sluiten elkaar wederzijds uit.
"--daemonize" en "--test-matching" sluiten elkaar wederzijds uit.
Dit hulpprogramma accepteert aanvullende opdrachtregelargumenten. Raadpleeg de "SYNOPSIS" en gebruik
informatie voor details.
--vraag-pas
Vraag om een wachtwoord bij verbinding met MySQL.
--tekenset
korte vorm: -A; type: tekenreeks
Standaard tekenset. Als de waarde utf8 is, stelt u Perl's binmode op STDOUT in op utf8,
geeft de optie mysql_enable_utf8 door aan DBD::mysql en voert daarna SET NAMES UTF8 uit
verbinding maken met MySQL. Elke andere waarde stelt binmode in op STDOUT zonder de utf8-laag,
en voert SET NAMES uit na verbinding met MySQL.
--config
type: matrix
Lees deze door komma's gescheiden lijst met configuratiebestanden; indien opgegeven, moet dit de eerste zijn
optie op de opdrachtregel.
--creëer-log-tabel
Maak de tabel "--log-dsn" aan als deze niet bestaat.
Deze optie zorgt ervoor dat de tabel gespecificeerd door "--log-dsn" wordt gemaakt met de standaardwaarde
structuur die wordt weergegeven in de documentatie voor die optie.
--daemoniseren
Vork naar de achtergrond en maak los van de schaal. Alleen POSIX-besturingssystemen.
--databank
korte vorm: -D; type: tekenreeks
De database die moet worden gebruikt voor de verbinding.
--defaults-bestand
korte vorm: -F; type: tekenreeks
Lees alleen mysql-opties uit het opgegeven bestand. U moet een absolute padnaam opgeven.
--filter
type: tekenreeks
Negeer gebeurtenissen waarvoor deze Perl-code niet waar retourneert.
Deze optie is een reeks Perl-code of een bestand met Perl-code dat wordt gecompileerd
in een subroutine met één argument: $event. Dit is een hashref. Als de opgegeven waarde
een leesbaar bestand is, dan leest pt-kill het hele bestand en gebruikt de inhoud ervan als de
code. Het bestand mag geen mikpunt (#!/usr/bin/perl) lijn.
Als de code waar retourneert, gaat de keten van callbacks verder; anders eindigt het. De
code is het laatste statement in de subroutine anders dan "return $event". De
subroutinesjabloon is:
sub { $gebeurtenis = verschuiving; filter && geef $event terug; }
Filters die op de opdrachtregel worden gegeven, staan tussen haakjes zoals "( filter
)". Voor complexe filters met meerdere regels moet u de code zo in een bestand plaatsen
niet tussen haakjes worden gewikkeld. Hoe dan ook, het filter moet syntactisch produceren
geldige code gezien de sjabloon. Bijvoorbeeld een if-else branch gegeven op het commando
regel zou niet geldig zijn:
--filter 'if () { } else { }' # FOUT
Omdat het op de opdrachtregel wordt gegeven, zou de if-else-tak erin worden gewikkeld
tussen haakjes, wat syntactisch niet geldig is. Dus om iets ingewikkelder te bereiken
op deze manier zou het nodig zijn om de code in een bestand te plaatsen, bijvoorbeeld filter.txt:
mijn $event_ok; als (...) { $event_ok=1; } anders {$event_ok=0; } $event_ok
Geef vervolgens "--filter filter.txt" op om de code uit filter.txt te lezen.
Als de filtercode niet compileert, sterft pt-kill met een fout. Als de filtercode
compileert, kan er nog steeds een fout optreden tijdens runtime als de code iets probeert te doen
verkeerd (zoals een patroon dat overeenkomt met een ongedefinieerde waarde). pt-kill biedt er geen
waarborgen dus codeer zorgvuldig!
Het is toegestaan dat de code bijwerkingen heeft (om $event te wijzigen).
--groeperen op
type: tekenreeks
Pas overeenkomsten toe op elke klasse van query's die zijn gegroepeerd op deze kolom TOON PROCESSLIJST. In
naast de basiskolommen van SHOW PROCESSLIST (gebruiker, host, opdracht, status, enz.),
zoekopdrachten kunnen worden vergeleken met "vingerafdruk" die de SQL-query in de "Info" abstraheert
kolom.
Query's zijn standaard niet gegroepeerd, dus overeenkomsten en acties zijn van toepassing op alle query's.
Door te groeperen kunnen overeenkomsten en acties worden toegepast op klassen van vergelijkbare zoekopdrachten, indien aanwezig
vragen in de klasseovereenkomst.
Bijvoorbeeld het detecteren van cache-stormloop (zie "alles-behalve-oudste" onder "--slachtoffers" voor een
uitleg van die term) vereist dat query's worden gegroepeerd op het kenmerk "arg".
Dit creëert klassen van identieke queries (ontdaan van commentaar). Vraagt dus "SELECT
c FROM t WHERE id=1" en "SELECT c FROM t WHERE id=1" zijn gegroepeerd in dezelfde klasse,
maar query c<"SELECT c FROM t WHERE id=3"> is dus niet identiek aan de eerste twee queries
het is gegroepeerd in een andere klasse. Wanneer "--slachtoffers" "alles-behalve-oudste" wordt gespecificeerd,
alle query's behalve de oudste in elke klasse worden gedood voor elke klasse van query's die
overeenkomt met de matchcriteria.
--help
Help weergeven en afsluiten.
--gastheer
korte vorm: -h; type: tekenreeks; standaard: localhost
Maak verbinding met host.
--interval
typ: tijd
Hoe vaak moet worden gecontroleerd op vragen om te doden. Als "--busy-time" niet wordt gegeven, dan wordt de
standaardinterval is 30 seconden. Anders is de standaardwaarde half zo vaak als "--busy-time".
Als zowel "--interval" als "--busy-time" worden gegeven, dan wordt de expliciete "--interval" waarde
is gebruikt.
Zie ook "--looptijd".
--log
type: tekenreeks
Druk alle uitvoer naar dit bestand af wanneer het is gedemoniseerd.
--log-dsn
type: DSN
Sla elke gedode query op in deze DSN.
Het argument specificeert een tabel om alle gedode query's op te slaan. De DSN is geslaagd
hebben de opties database (D) en tabel (t). De tabel moet minimaal het volgende hebben
kolommen. U kunt meer kolommen toevoegen voor uw eigen speciale doeleinden, maar dat zijn ze niet
gebruikt door pt-kill. De volgende CREATE TABLE-definitie wordt ook gebruikt voor
"--creëer-log-tabel". MAGIC_create_log_table:
MAAK TABEL kill_log (
kill_id int(10) niet-ondertekend NOT NULL AUTO_INCREMENT,
server_id bigint(4) NIET NULL STANDAARD '0',
tijdstempel DATETIME,
reden TEKST,
kill_error TEKST,
Id bigint(4) NIET NULL STANDAARD '0',
Gebruiker Varchar(16) NIET NULL STANDAARD '',
gastheer Varchar(64) NIET NULL STANDAARD '',
db Varchar(64) STANDAARD NUL,
commando Varchar(16) NIET NULL STANDAARD '',
Tijd int(7) NIET NULL STANDAARD '0',
Land Varchar(64) STANDAARD NUL,
Info lange tekst,
Tijd_ms bigint(21) DEFAULT '0', # NOTE, TODO: momenteel niet gebruikt
PRIMAIRE SLEUTEL (kill_id)
) STANDAARD TEKENSET=utf8
--wachtwoord
korte vorm: -p; type: tekenreeks
Wachtwoord om te gebruiken bij het verbinden. Als het wachtwoord komma's bevat, moeten deze worden ontsnapt
met een backslash: "exam\,ple"
--pid
type: tekenreeks
Maak het opgegeven PID-bestand aan. De tool start niet als het PID-bestand al bestaat en
de PID die het bevat is anders dan de huidige PID. Als het PID-bestand
bestaat en de PID die deze bevat niet meer actief is, zal de tool de PID overschrijven
bestand met de huidige PID. Het PID-bestand wordt automatisch verwijderd wanneer de tool wordt afgesloten.
--haven
korte vorm: -P; typ: int
Poortnummer dat moet worden gebruikt voor verbinding.
--query-id
Drukt een ID af van de zoekopdracht die zojuist is afgebroken. Dit komt overeen met de "ID"-uitvoer
van pt-query-digest. Dit maakt kruisverwijzingen naar de uitvoer van beide tools mogelijk.
Voorbeeld:
Query-ID 0xE9800998ECF8427E
Merk op dat dit een samenvatting (of hash) is van de "vingerafdruk" van de query, dus query's van de
dezelfde vorm maar met verschillende waarden hebben dezelfde ID. Zie pt-query-digest voor
meer informatie.
--rds
Geeft aan dat de instantie in kwestie zich op Amazon RDS bevindt. Standaard voert pt-kill de MySQL uit
commando "kill" voor "--kill" en "kill-query" "--kill-query". Op RDS deze twee
commando's zijn niet beschikbaar en worden vervangen door functieaanroepen. Deze optie verandert
"--kill" om in plaats daarvan "CALL mysql.rds_kill(thread-id)" te gebruiken en "--kill-query" om te gebruiken
"ROEP mysql.rds_kill_query(thread-id)"
--looptijd
typ: tijd
Hoe lang je moet rennen voordat je weggaat. Standaard wordt pt-kill voor altijd uitgevoerd, of tot het proces
wordt gedood of gestopt door het aanmaken van een "--sentinel"-bestand. Als deze optie is
gespecificeerd, pt-kill loopt voor de gespecificeerde hoeveelheid tijd en slaapt "--interval"
seconden tussen elke controle van de PROCESSLIJST.
-- schildwacht
type: tekenreeks; standaard: /tmp/pt-kill-sentinel
Sluit af als dit bestand bestaat.
De aanwezigheid van het bestand gespecificeerd door "--sentinel" zorgt ervoor dat alle actieve exemplaren van
pt-kill om af te sluiten. Misschien vindt u dit handig om cronjobs netjes te stoppen indien nodig.
Zie ook "--stop".
--set-vars
type: matrix
Stel de MySQL-variabelen in deze door komma's gescheiden lijst van "variabele=waarde"-paren in.
Standaard stelt de tool het volgende in:
wait_timeout=10000
Variabelen die op de opdrachtregel zijn opgegeven, overschrijven deze standaardwaarden. Bijvoorbeeld,
het specificeren van "--set-vars wait_timeout=500" overschrijft de standaardwaarde van 10000.
De tool drukt een waarschuwing af en gaat verder als een variabele niet kan worden ingesteld.
--stopcontact
korte vorm: -S; type: tekenreeks
Socketbestand om te gebruiken voor verbinding.
--stoppen
Stop lopende instanties door het bestand "--sentinel" te maken.
Zorgt ervoor dat pt-kill het sentinel-bestand aanmaakt dat is opgegeven door "--sentinel" en sluit af. Dit
zou het effect moeten hebben van het stoppen van alle lopende instanties die hetzelfde bekijken
schildwacht bestand.
--[geen]stripcommentaar
standaard: ja
Verwijder SQL-opmerkingen uit query's in de Info-kolom van de PROCESSLIJST.
--gebruiker
korte vorm: -u; type: tekenreeks
Gebruiker om in te loggen indien niet huidige gebruiker.
--versie
Toon versie en sluit af.
--[no]versiecontrole
standaard: ja
Controleer op de nieuwste versie van Percona Toolkit, MySQL en andere programma's.
Dit is een standaard "controleer automatisch op updates", met twee extra
Kenmerken. Eerst controleert de tool de versie van andere programma's op het lokale systeem in
aanvulling op een eigen versie. Het controleert bijvoorbeeld de versie van elke MySQL-server
het maakt verbinding met Perl en de Perl-module DBD::mysql. Ten tweede, het controleert en waarschuwt
over versies met bekende problemen. MySQL 5.5.25 had bijvoorbeeld een kritieke bug en
werd opnieuw uitgebracht als 5.5.25a.
Alle updates of bekende problemen worden naar STDOUT afgedrukt voordat de normale uitvoer van het hulpprogramma wordt uitgevoerd.
Deze functie mag nooit interfereren met de normale werking van het gereedschap.
Voor meer informatie bezoek .
--slachtoffers
type: tekenreeks; standaard: oudste
Welke van de overeenkomende zoekopdrachten in elke klasse wordt gedood. Nadat de lessen zijn geweest
overeenkomend/gefilterd, specificeert deze optie welke van de overeenkomende zoekopdrachten in elke klasse
zal worden gedood (of afgedrukt, enz.). De volgende waarden zijn mogelijk:
oudste
Dood alleen de oudste query. Dit is om te voorkomen dat query's worden gedood die dat niet zijn
echt langlopend, ze wachten gewoon lang. Dit sorteert overeenkomende zoekopdrachten op
Tijd en doodt degene met de hoogste tijdwaarde.
all Dood alle vragen in de klas.
alles behalve de oudste
Dood alles behalve de oudste query. Dit is het omgekeerde van de "oudste" waarde.
Deze waarde kan worden gebruikt om "cache stampedes" te voorkomen, de toestand waarbij meerdere
identieke query's worden uitgevoerd en creëren een achterstand terwijl de eerste query probeert
af te maken. Aangezien alle query's identiek zijn, worden alle query's behalve de eerste zo gedood
dat het de cache kan voltooien en vullen.
--wacht-na-doden
typ: tijd
Wacht na het doden van een query, voordat je op zoek gaat naar meer om te doden. Het doel hiervan is
om geblokkeerde zoekopdrachten een kans te geven om uit te voeren, zodat we een blokkerende zoekopdracht niet doden
een stel anderen, en dood de anderen onmiddellijk daarna.
--wacht-voor-doden
typ: tijd
Wacht voordat u een query doodt. Het doel hiervan is om "--execute-command" a
kans om de overeenkomende zoekopdracht te zien en eerder andere MySQL- of systeeminformatie te verzamelen
het is gedood.
VRAAG WEDSTRIJDEN
Deze opties filteren query's uit hun klassen. Als een zoekopdracht niet overeenkomt, wordt deze verwijderd
uit zijn klasse. De opties "--ignore" hebben voorrang. De wedstrijden voor commando, db,
host, etc. komen overeen met de kolommen die worden geretourneerd door SHOW PROCESSLIST: Command, db, Host, etc.
Alle patroonovereenkomsten zijn standaard hoofdlettergevoelig, maar ze kunnen hoofdletterongevoelig worden gemaakt
door een regex-patroon op te geven zoals "(?i-xsm:select)".
Zie ook "GROEPEREN, MATCHEN EN DODEN".
--drukke tijd
type: tijd; groep: Query-overeenkomsten
Komt overeen met zoekopdrachten die langer dan deze tijd actief zijn. De vragen moeten zijn
in Command=Querystatus. Dit komt overeen met de tijdwaarde van een query zoals gerapporteerd door SHOW
PROCESSLIJST.
--inactieve tijd
type: tijd; groep: Query-overeenkomsten
Overeenkomen met zoekopdrachten die langer dan deze tijd inactief/slapend zijn geweest. De vragen
moet de status Command=Slaap hebben. Dit komt overeen met de tijdwaarde van een query zoals gerapporteerd door
TOON PROCESLIJST.
--negeer-commando
type: tekenreeks; groep: Query-overeenkomsten
Negeer query's waarvan de opdracht overeenkomt met deze Perl-regex.
Zie "--match-opdracht".
--negeer-db
type: tekenreeks; groep: Query-overeenkomsten
Negeer queries waarvan de db (database) overeenkomt met deze Perl regex.
Zie "--match-db".
--negeer-host
type: tekenreeks; groep: Query-overeenkomsten
Negeer query's waarvan de host overeenkomt met deze Perl-regex.
Zie "--match-host".
--neger-info
type: tekenreeks; groep: Query-overeenkomsten
Negeer query's waarvan de info (query) overeenkomt met deze Perl-regex.
Zie "--match-info".
--[geen]negeer-zelf
standaard: ja; groep: Query-overeenkomsten
Dood de eigen verbinding van pt-kill niet.
--negeer-staat
type: tekenreeks; groep: Queryovereenkomsten; standaard: Vergrendeld
Negeer query's waarvan de status overeenkomt met deze Perl-regex. De standaard is om threads te behouden
voorkomen dat ze worden gedood als ze zijn vergrendeld in afwachting van een andere thread.
Zie "--match-status".
--negeer gebruiker
type: tekenreeks; groep: Query-overeenkomsten
Negeer zoekopdrachten waarvan de gebruiker overeenkomt met deze Perl-regex.
Zie "--match-gebruiker".
--match-alles
groep: Query-overeenkomsten
Overeenkomen met alle zoekopdrachten die niet worden genegeerd. Als er geen negeeropties zijn opgegeven, dan
elke zoekopdracht komt overeen (behalve replicatiethreads, tenzij "--replication-threads" is
ook aangegeven). Met deze optie kunt u negatieve overeenkomsten specificeren, bijv. "match
elke vraag behalve..." waarbij de uitzonderingen worden gedefinieerd door verschillende op te geven
"--negeer" opties.
Deze optie is niet hetzelfde als "--slachtoffers" "allen". Deze optie komt overeen met alle zoekopdrachten
binnen een klasse, terwijl "--victims" "all" specificeert dat alle overeenkomende zoekopdrachten in a
klasse (hoe ze ook matchen) zal worden gedood. Normaal gesproken worden de twee echter gebruikt
samen, want als u bijvoorbeeld "--slachtoffers" "oudste" specificeert, dan hoewel alle
zoekopdrachten kunnen overeenkomen, alleen de oudste wordt gedood.
--match-commando
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de opdracht overeenkomt met deze Perl-regex.
Algemene opdrachtwaarden zijn:
Vraag
Slaap
Binlog-dump
Connect
Vertraagde invoeging
Uitvoeren
halen
Begin DB
Doden
Voorbereiden
Proceslijst
Verlaten
Stmt resetten
Tafel dumpen
Zienhttp://dev.mysql.com/doc/refman/5.1/en/thread-commands.html> voor een volledige lijst en
beschrijving van opdrachtwaarden.
--match-db
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de db (database) overeenkomt met deze Perl-regex.
--match-host
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de host overeenkomt met deze Perl-regex.
De Host-waarde omvat vaak de poort zoals "host:poort".
--wedstrijd-info
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de info (query) overeenkomt met deze Perl-regex.
De kolom Info van de proceslijst toont de query die wordt uitgevoerd of NULL als
er wordt geen query uitgevoerd.
--match-status
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de status overeenkomt met deze Perl-regex.
Common State-waarden zijn:
Vergrendeld
Log in
kopiëren naar tmp-tabel
Kopiëren naar tmp-tabel
Kopiëren naar tmp-tabel op schijf
Het creëren tmp tafel
uitvoeren
Lezen van net
Gegevens verzenden
Sorteren voor bestelling
Sorteren resultaat
Tabel lock
Bijwerken
Zienhttp://dev.mysql.com/doc/refman/5.1/en/general-thread-states.html> voor een volle
lijst en beschrijving van staatswaarden.
--match-gebruiker
type: tekenreeks; groep: Query-overeenkomsten
Komt alleen overeen met query's waarvan de gebruiker overeenkomt met deze Perl-regex.
--replicatie-threads
groep: Query-overeenkomsten
Matchen en doden van replicatiethreads toestaan.
Overeenkomsten zijn standaard niet van toepassing op replicatiethreads; dat wil zeggen replicatie threads zijn
volledig genegeerd. Als u deze optie opgeeft, kunnen overeenkomsten overeenkomen (en mogelijk
kill) replicatiethreads op masters en slaves.
--testmatching
type: reeks; groep: Query-overeenkomsten
Bestanden met momentopnamen van proceslijsten om overeenkomende opties mee te testen. Sinds het matchen
opties kunnen complex zijn, u kunt momentopnamen van de proceslijst in bestanden opslaan en vervolgens testen
overeenkomende opties met zoekopdrachten in die bestanden.
Deze optie schakelt "--run-time", "--interval" en "--[no]ignore-self" uit.
KLASSE WEDSTRIJDEN
Deze overeenkomsten zijn van toepassing op volledige queryklassen. Klassen worden gemaakt door de
optie "--group-by", anders zijn alle query's lid van een enkele standaardklasse.
Zie ook "GROEPEREN, MATCHEN EN DODEN".
--elke-drukke-tijd
type: tijd; groep: Klasse Wedstrijden
Match de queryklasse als een query langer dan deze tijd actief is. "Langer
than" betekent dat als u bijvoorbeeld 10 opgeeft, de klasse alleen overeenkomt als er een is
ten minste één query die langer dan 10 seconden actief is.
Zie "--each-busy-time" voor meer details.
--elke-drukke-tijd
type: tijd; groep: Klasse Wedstrijden
Match queryklasse als elke query langer dan deze tijd actief is. "Langer
than" betekent dat als u bijvoorbeeld 10 opgeeft, de klasse alleen overeenkomt als elke en
elke query is langer dan 10 seconden actief.
Zie ook "--any-busy-time" (om overeen te komen met een klasse als ELKE query langer loopt dan
de opgegeven tijd) en "--busy-time".
--query-telling
type: int; groep: Klasse Wedstrijden
Zoek een match met de queryklasse als deze minstens zoveel query's heeft. Wanneer query's zijn gegroepeerd in
klassen door "--group-by" op te geven, zorgt deze optie ervoor dat overeenkomsten alleen van toepassing zijn op
klassen met minstens zoveel vragen. Als "--group-by" niet is gespecificeerd, dan dit
optie zorgt ervoor dat overeenkomsten alleen van toepassing zijn als er minstens zoveel zoekopdrachten in het
gehele TOON PROCESLIJST.
--uitgebreid
korte vorm: -v
Print informatie naar STDOUT over wat er wordt gedaan.
ACTIES
Deze acties worden uitgevoerd voor elke overeenkomende zoekopdracht van alle klassen. De acties worden ondernomen
in deze volgorde: "--print", "--execute-command", "--kill"/"--kill-query". Deze bestelling maakt het mogelijk
"--execute-command" om de uitvoer van "--print" en de query ervoor te zien
"--kill"/"--kill-query". Dit kan nuttig zijn omdat pt-kill er geen passeert
informatie naar "--execute-command".
Zie ook "GROEPEREN, MATCHEN EN DODEN".
--opdracht uitvoeren
type: tekenreeks; groep: Acties
Voer deze opdracht uit wanneer een zoekopdracht overeenkomt.
Nadat het commando is uitgevoerd, heeft pt-kill er geen controle over, dus het commando is dat wel
verantwoordelijk voor zijn eigen infoverzameling, logging, interval, etc. De opdracht is
uitgevoerd elke keer dat een query overeenkomt, dus wees voorzichtig dat de opdracht zich goed gedraagt wanneer
meerdere exemplaren worden uitgevoerd. Er wordt geen informatie van pt-kill doorgegeven aan het commando.
Zie ook "--wait-before-kill".
--doden
groep: Acties
Verbreek de verbinding voor overeenkomende zoekopdrachten.
Deze optie zorgt ervoor dat pt-kill de verbindingen (ook wel processen, threads) die hebben
overeenkomende zoekopdrachten. Gebruik "--kill-query" als u alleen individuele vragen wilt doden en
niet hun connecties.
Tenzij "--print" ook wordt gegeven, wordt er geen andere informatie afgedrukt waaruit blijkt dat pt-
kill kwam overeen en doodde een query.
Zie ook "--wait-before-kill" en "--wait-after-kill".
--kill-query
groep: Acties
Dood overeenkomende zoekopdrachten.
Deze optie maakt pt-kill kill-matchingquery's. Hiervoor is MySQL 5.0 of nieuwer vereist.
In tegenstelling tot "--kill" die de verbinding verbreekt voor overeenkomende zoekopdrachten, is deze optie alleen beschikbaar
doodt de query, niet de verbinding.
--afdrukken
groep: Acties
Druk een KILL-instructie af voor overeenkomende zoekopdrachten; doodt query's niet echt.
Als u alleen wilt zien welke zoekopdrachten overeenkomen en zonder daadwerkelijk worden gedood
als u ze doodt, geeft u "--print" op. Geef op om overeenkomende query's zowel te doden als af te drukken
zowel "--kill" als "--print".
DSN OPTIES
Deze DSN-opties worden gebruikt om een DSN te maken. Elke optie wordt gegeven als "option=value".
De opties zijn hoofdlettergevoelig, dus P en p zijn niet dezelfde optie. Er kan niet zijn
witruimte voor of na de "=" en als de waarde witruimte bevat, moet deze tussen aanhalingstekens worden geplaatst.
DSN-opties zijn door komma's gescheiden. Zie de percona-toolkit manpage voor volledige details.
· EEN
dsn: tekenset; kopie: ja
Standaard tekenset.
· NS
dsn: databank; kopie: ja
Standaarddatabase.
F
dsn: mysql_read_default_file; kopie: ja
Lees alleen de standaardopties van het opgegeven bestand
· H
dsn: host; kopie: ja
Maak verbinding met host.
· P
dsn: wachtwoord; kopie: ja
Wachtwoord om te gebruiken bij het verbinden. Als het wachtwoord komma's bevat, moeten deze worden ontsnapt
met een backslash: "exam\,ple"
· Blz
dsn: poort; kopie: ja
Poortnummer dat moet worden gebruikt voor verbinding.
· S
dsn: mysql_socket; kopie: ja
Socketbestand om te gebruiken voor verbinding.
· u
dsn: gebruiker; kopie: ja
Gebruiker om in te loggen indien niet huidige gebruiker.
· T
Tabel om acties in te loggen, indien doorgegeven via --log-dsn.
MILIEU
De omgevingsvariabele "PTDEBUG" maakt uitgebreide foutopsporingsuitvoer naar STDERR mogelijk. In staat te stellen
debuggen en alle uitvoer vastleggen in een bestand, voer de tool uit als:
PTDEBUG=1 pt-kill ... > BESTAND 2>&1
Wees voorzichtig: het debuggen van uitvoer is omvangrijk en kan enkele megabytes aan uitvoer genereren.
SYSTEM VEREISTEN
U hebt Perl, DBI, DBD::mysql en enkele kernpakketten nodig die in elk
redelijk nieuwe versie van Perl.
Gebruik pt-killp online met behulp van onworks.net-services