Artikel top billede

Foto: Mark Lee

Her er de mest uundværlige MySQL-værktøjer - del 3

MySQL-community'et producerer en lang række uundværlige open source-værktøjer, som du frit kan bruge til at forbedre dine MySQL-systemers ydelse og sundhed. Her har vi samlet de bedste.

Læs også:
Disse værktøjer til MySQL kan du ikke undvære[b] (del 1)[/b]

Her er de MySQL-værktøjer, du har brug for (del 2)

Jeg har samlet 10 open source-værktøjer, som vil være værdifulde ressourcer for enhver, der anvender MySQL. Her kommer anden del af serien. 

Du kan læse mere om baggrunden for listen her, hvor du også kan se de første værktøjer.

Uundværligt MySQL-værktøj nr. 7: mycheckpoint
 
Det er ikke altid, man ønsker at vente på, at noget går galt, før man gør noget ved et potentielt problem, og kontrolpaneler kan være en uundværlig måde at overvåge sit MySQL-miljø for potentielle problemer, før de opstår. 

Der findes mange gratis og kommercielle applikationer til overvågning i MySQL, hvor nogle specifikt er til MySQL, mens andre er generiske med MySQL-plugins eller -skabeloner. Mycheckpoint er bemærkelsesværdig, idet den er gratis, open source, specifikt til MySQL og funktionskomplet. 

Lige som mange andre overvågningsløsninger er mycheckpoint webbaseret. 

Mycheckpoint kan konfigureres til at overvåge kriterier for både MySQL og serveren såsom InnoDB buffer pool flushes, oprettelsen af midlertidige tabeller, systembelastningen, hukommelsesforbruget og meget andet. Hvis du ikke bryder dig om diagrammer, kan mycheckpoint også generere mere menneskevenlige rapporter. 

Ligesom det er tilfældet med pt-stalk, kan man også her definere advarsels-betingelser med notifikationer via e-mail, men der er her intet sekundært værktøj ligesom pt-collect til at logge yderligere data til brug ved fejlfinding. En anden brugbar funktion er dog mycheckpoints evne til overvåge MySQL-variabler og derved opdage ændringer, der potentielt kan føre til problemer eller være tegn på, at nogen har foretaget uautoriserede ændringer. 

Overvågning af MySQL er ikke kun for datacentre og store implementeringer. Selvom hvis man blot har en enkelt MySQL-server, er overvågning uundværligt. Ligesom med en bil er der meget, man kan finde ud af om systemet, mens det kører, som kan hjælpe til at forudse eller undgå driftsforstyrrelser. Mycheckpoint er en ud af mange løsninger, det kan betale sig at prøve. 

Download:http://code.google.com/p/mycheckpoint/downloads/list 
Vedligeholdes af: Shlomi Noach 
Mere information: http://code.openark.org/forge/mycheckpoint 

Uundværligt MySQL-værktøj nr. 8: shard-query 
Forespørgsler om partitionerede eller såkaldte sharded datasæt kan gøres dramatisk meget hurtigere ved brug af shard-query, som bag kulisserne paralleliserer bestemte forespørgsler. Forespørgsler, der bruger følgende constructs kan drage fordel af shard-querys parallelle eksekvering: 


  • Underforespørgsler i FROM
  • UNION og UNION ALL
  • IN
  • BETWEEN
Også funktioner som SUM, COUNT, MIN og MAX kan bruges med disse constructs. For eksempel kan følgende forespørgsel udføres parallelt af shard-query: 

SELECT DayOfWeek, COUNT(*) AS c 
FROM ontime_fact 
JOIN dim_date USING(date_id) 
WHERE Year 
BETWEEN 2000 AND 2008 
GROUP BY DayOfWeek 
ORDER BY c DESC; 

Test viser, at parallelisering af denne forespørgsel reducerer dens svartid med rundt regnet 85 procent fra 21 til tre sekunder. 

Shard-query er dog ikke et selvstændigt værktøj. Det kræver andre programmer såsom Gearman og er relativt kompliceret at opsætte. Men hvis dine data er partitionerede og dine forespørgsler bruger nogen af ovenstående constructs, så er fordelene umagen værd. 

Download: (svn checkout) http://code.google.com/p/shard-query/source/checkout 
Vedligeholdes af: Justin Swanhart 
Mere information: http://code.google.com/p/shard-query/

Se flere uundværlige værktøjer på næste side.

Flere uundværlige MySQL-værktøjer

Uundværligt MySQL-værktøj nr. 9: pt-archiver 
I takt med at tabellerne bliver større, kan forespørgslerne efter dem blive langsommere. Der er mange faktorer, der påvirker svartider, men hvis man har optimeret alt andet og den eneste tilbageværende mistanke falder på en meget stor tabel, så kan det vise at give hurtigere svartider, hvis man arkiverer nogle af rækkerne fra denne tabel. 

Hvis ikke tabellen er uvæsentlig, bør man aldrig blot slette rækker. Arkivering kræver finesse for at sikre, at man ikke mister data, at tabellen ikke låses unødigt og at arkiveringsprocessen hverken overbelaster MySQL eller serveren.

Målsætningen er en arkiveringsproces, der er pålidelig og umærkelig på nær dens gavnlige effekt bestående af reducerede svartider. Alt det opnår pt-archiver. 

Pt-archiver har to grundlæggende krav. Det første er, at det skal være muligt at identificere de rækker, der skal arkiveres. Et eksempel kan være, at man har en tabel med en dato-kolonne og man ved, at der kun er brug for de sidste N år af data, så ved man også, at rækker med datoer ældre end N år trygt kan arkiveres.

Det andet er, at der skal eksistere et unikt indeks, der kan hjælpe pt-archiver til at identificere arkiverbare rækker, uden at hele tabellen skal skannes. Det koster ressourcer at skanne en stor tabel, derfor gøres der brug af et indeks og specifikke SELECT-udsagn, så man undgår tabel-skanninger. 

I praksis håndterer pt-archiver automatisk de tekniske detaljer. Du skal ikke gøre andet end at fortælle værktøjet, hvilken tabel, der skal arkiveres, hvordan det identificerer arkiverbare rækker og hvor de rækker skal arkiveres.

Disse rækker kan herefter slettes, kopieres til en anden tabel eller skrives til en dump-fil, så de kan bruges til fremtidig genoprettelse, hvis behovet skulle opstå. Når man er blevet tryg ved værktøjet, er der mange valgmuligheder for at finjustere arkiveringsprocessen. Derudover kan pt-archiver integreres, så værktøjet kan bruges til at opfylde komplekse arkiveringsbehov uden at lappe i koden. 

Mere information: http://www.percona.com/doc/percona-toolkit/pt-archiver.html
Vedligeholdes af: Daniel Nichter og Baron Schwartz 
Værktøjerne er en del af Percona Toolkit, som kan hentes her.

Uundværligt MySQL-værktøj nr. 10: oak-security-audit 
Hvornår gennemgik du sidst dine MySQL-serveres sikkerhed? Du er ikke alene, hvis svaret er "aldrig". Der er mange virksomheder, der tilbyder sikkerhedsevalueringer, men på nær hvis intet nogensinde ændres efter en sådan evaluering, så bør dit MySQL-miljøs sikkerhed tjekkes regelmæssigt. 

Eksterne trusler er en åbenlys grund til at styrke MySQL-sikkerheden, men de interne trusler såsom nuværende eller tidligere medarbejdere er ofte farligere, da de er (eller var) betroede i en eller anden grad.

Sikkerheden er også vigtig i forhold til overholdelse af regler og love om privatlivets fred, forhindring af utilsigtet adgang (for eksempel ved utilsigtet at logge ind på produktionsserveren i stedet for på udviklingsserveren) og i forhold til, hvis tredjepartsprogrammer skal interagere med dine systemer. 

Er man ude efter at forbedre sikkerheden i sin udrulning er oak-security-audit bestemt værd at stifte bekendtskab med. Det er et gratis, open source og udfører grundlæggende evaluering af sikkerheden ved MySQL.

Det kræver ingen opsætning, man kører det bare imod sine MySQL-servere og så genererer det en rapport med risici og anbefalinger angående konti, kontoprivilegier, kodeord og nogle generelle råd om best practices såsom spærring af netværksadgang. Her er et udklip af en sådan rapport: 

-- Looking for anonymous user accounts 
-- ----------------------------------- 
-- Passed 
-- 
-- Looking for accounts accessible from any host 
-- --------------------------------------------- 
-- Found 1 accounts accessible from any host. Recommended actions: 
RENAME USER 'msandbox'@'%' TO 'msandbox'@''; 

Oak-security-audit fokuserer skarpt på MySQL-sikkerheden, så det kan ikke erstatte en komplet evaluering af systemets sikkerhed udført af et menneske, men det er en fremragende første skanse i forsvaret og det er let at bruge. Man kan eksempelvis køre det ugentligt som et cron-job og få rapporten tilsendt via e-mail. 

Download:http://openarkkit.googlecode.com/svn/trunk/openarkkit/src/oak/oak-security-audit.py 
Vedligeholdes af: Shlomi Noach 
Mere information: 
http://openarkkit.googlecode.com/svn/trunk/openarkkit/doc/html/oak-security-audit.html

Oversat af Thomas Bøndergaard.

Læs også:
Disse værktøjer til MySQL kan du ikke undvære[b] (del 1)[/b]

Her er de MySQL-værktøjer, du har brug for (del 2)




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
TIETOEVRY DENMARK A/S
Udvikler, sælger og implementerer software til ESDH, CRM og portaler. Fokus på detailhandel, bygge- og anlæg, energi og finans.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

23. april 2024 | Læs mere


AI Business Excellence Day – sådan folder du mulighederne ud

Mange danske virksomheder har eksperimenteret med AI-projekter af begrænset omfang, men kun de færreste har for alvor udforsket mulighederne i storskala. Det gør vi her! Du vil blandt andet få mulighed for at se eksempler på, hvordan AI kan anvendes som accelerator i storskala og skubber til grænserne for, hvordan det er muligt at integrere teknologien, så potentialet for alvor foldes ud.

24. april 2024 | Læs mere


Unbreakable - sådan sikrer du dig vedvarende og uafbrudt adgang til dine data

Vi dykker ned i værdien af en stabil og pålidelig storage-platform og hvilke muligheder der findes, for at sikre den højeste grad af redundans og tilgængelighed. Områder som date-beskyttelse og cyber-sikkerhed vil også blive berørt.

25. april 2024 | Læs mere