Programmering

Topp 5 åpen kildekodeverktøy for MySQL-administratorer

Michael Coburn er produktsjef i Percona.

For databaseadministratorer (DBAer) kan det å holde databaser i gang med topp ytelse være som å snurre plater: Det krever smidighet, konsentrasjon, raske reaksjoner, et kaldt hode og en og annen kall fra en hjelpsom tilskuere. Databaser er sentrale for vellykket drift av nesten alle applikasjoner. Siden DBA er ansvarlig for organisasjonens data, er det viktig å finne pålitelige verktøy som hjelper dem med å strømlinjeforme databasestyringsprosessen og lette daglige vedlikeholdsoppgaver. DBA-er trenger gode verktøy for å holde systemene sine roterende.

Så hva er de velprøvde og pålitelige verktøyene for MySQL-administratorer? Her deler jeg de fem beste åpen kildekodeverktøyene mine for MySQL-administratorer og diskuterer verdien av dem til støtte for daglige MySQL-administrasjonsoppgaver. For hver av dem har jeg gitt en lenke til GitHub-depotet og oppført antall GitHub-stjerner i skrivende stund.

Mycli

Mycli-prosjektet gir automatisk fullføring av MySQL-kommandolinje og syntaksutheving. Det er et av de mest populære MySQL-verktøyene for administratorer.

Sikkerhetsbegrensninger som hoppverter og tofaktorautentisering gir mange MySQL DBAer kun kommandolinje tilgang til systemene sine. I slike tilfeller er ikke elskede GUI-verktøy som MySQL Workbench, Monyog og andre et alternativ.

På kommandolinjen blir mye av tiden brukt i en lys-på-svart terminalverden. Så en av de beste tingene med Mycli er rikdommen i syntaksen. Dette lar deg for eksempel skille funksjoner og operatører visuelt fra spørringsstrenger i HVOR klausuler. For en kort spørring med en linje er dette kanskje ikke så stort, men det blir en spillveksler når du jobber med spørsmål som utfører BLI MED operasjoner over mer enn et par bord. Gjør jeg det BLI MED bruker indekserte kolonner? Filtrerer jeg ved hjelp av ledende jokertegn i min HVOR klausuler? Mycli støtter flere linjespørsmål og syntaksutheving, noe som betyr at du kan komme inn på de seksjonene som betyr mest når du vurderer eller optimaliserer spørsmål. Du kan velge mellom en rekke syntaksfremmende fargevalg eller lage dine egne.

Den andre morderfunksjonen til Mycli er smart ferdigstillelse. Dette lar deg velge ut tabell- og kolonnenavn fra en kontekstsensitiv liste ved å skrive inn bare de første få tegnene. Ikke mer forlate din nåværende innspill for å kjøre VIS OPPRETT TABELL fordi du har glemt navnet på kolonnen du vil ha i din HVOR klausul!

Amjith Ramanujam

Med Mmycli kan du alias favoritt spørsmål ved hjelp av \ fs, f.eks. \ fs myAlias ​​myQuery. Dette er veldig nyttig, da du deretter kan utføre spørringen ved hjelp av \ f myAlias når det er behov for det.

Mycli-prosjektet bruker BSD 3-lisensen. Det er 44 bidragsytere, 1,2 k forpliktelser og 5 000 stjerner.

Spøkelse

Hvis du som 99 prosent av MySQL DBA-er har møtt en implementering av en endring i en MySQL-tabell mens du frykter innvirkningen på produksjonen, bør du vurdere Gh-ost (GitHub Online Schema Migration). Gh-ost gir MySQL skjemaendringer uten å blokkere skriver, uten å bruke utløsere, og med muligheten til å stoppe og gjenoppta migrasjonen!

Hvorfor er dette så viktig? Siden MySQL 5.6 ble levert med nytt ALTER TABLE ... ALGORITM = INPLASS DDL (Data Definition Language) -funksjonalitet, ble det mulig å endre en tabell uten å blokkere skriver for vanlige operasjoner som å legge til en indeks (B-tre). Imidlertid er det fortsatt noen få forhold der skrifter (DML-uttalelser) er blokkert, spesielt tillegg av en FULL TEKST indeks, kryptering av tabellområdet og konvertering av en kolonnetype.

Andre populære verktøy for online endring av skjemaer, som Perconas pt-online-skjemaendring, fungerer ved å implementere et sett med tre utløsere (SETT INN, OPPDATER, og SLETT) på mesteren for å holde en skyggekopietabell synkronisert med endringer. Dette introduserer en liten ytelsesstraff på grunn av skriveforsterkning, men krever mer sju forekomster av metadatalåser. Disse stopper effektivt DML-hendelser (Data Manipulation Language).

Siden Gh-ost opererer ved hjelp av den binære loggen, er den ikke utsatt for de utløserbaserte ulempene. Endelig er Gh-ost i stand til å effektivt redusere aktiviteten til null hendelser, slik at du kan stoppe skjemamigreringen en stund hvis serveren din begynner å slite, og fortsette når aktivitetsboblen fortsetter.

Så hvordan fungerer Gh-ost? Som standard kobles Gh-ost til en replika (slave), identifiserer masteren og bruker migreringen på masteren. Den mottar endringer på en kopi av kildetabellen i binlog_format = ROW, analyserer loggen og konverterer disse setningene for å bli kjørt på nytt på masterens skyggetabell. Den holder oversikt over radtallene på replikaen og identifiserer når det er på tide å utføre en atomavskjæring (bytt tabell).

GitHub

Gh-ost gir en alternativ modus der du utfører overføringen direkte på masteren (enten den har slaver eller ikke), les tilbake masterens binlog_format = RAD hendelser, og bruk dem deretter på nytt i skyggetabellen.

Et siste alternativ er tilgjengelig for å kjøre migreringen bare på replikaen uten å påvirke masteren, slik at du kan teste eller på annen måte validere migreringen.

GitHub

Merk at hvis skjemaet ditt har utenlandske nøkler, kan det hende at Gh-ost ikke fungerer rent, da denne konfigurasjonen ikke støttes.

Merk at eik-online-alter-bord var forgjengeren til Gh-ost. Du kan lese en sammenligning mellom ytelse av Gh-ost og pt-online-skjemaendring av Peter Zaitsev, Perconas administrerende direktør, sammen med et svar fra Shlomi Noach, forfatteren og vedlikeholderen av OAK-verktøysettet og Gh-ost.

Gh-ost-prosjektet bruker MIT-lisensen. Den har 29 bidragsytere, nesten 1 000 forpliktelser og 3 000 stjerner.

PhpMyAdmin

Et av de lengste og mest modne prosjektene blant MySQL-verktøy er det ærverdige PhpMyAdmin-verktøyet som brukes til å administrere MySQL over nettet. phpMyAdmin lar DBA bla gjennom og endre MySQL-databaseobjekter: databaser, tabeller, visninger, felt og indekser. Det er muligheter for å utføre dataeksport i mer enn et dusin formater, endre MySQL-brukere og privilegier, og - min favoritt - utføre ad-hoc-spørsmål.

Du finner også en Status-fane som dynamisk plotter spørsmål, forbindelser / prosesser og nettverkstrafikk for den gitte databaseinstansen, sammen med en Advisor-fane som viser deg en liste over mulige ytelsesproblemer sammen med anbefalinger om hvordan du kan rette opp.

PhpMyAdmin bruker GPLv2-lisensen. Dette er et stort prosjekt med mer enn 800 bidragsytere, fantastiske 112 000 forpliktelser og 2,7 000 stjerner. En online demo er tilgjengelig på //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL-antimønstre kan redusere spørringene, men det tar ofte erfarne DBAer og utviklere å pore over koden for å identifisere og løse dem. Sqlcheck gjenspeiler Joy Arulrajs innsats for å kodifisere boken “SQL Anti-patterns: Unngå fallgruvene ved databaseprogrammering” av Bill Karwin. Karwin identifiserer fire kategorier antimønster:

  1. Logisk databasedesign
  2. Fysisk database design
  3. Spørsmål
  4. Søknadsutvikling
Glede Arulraj

Sqlcheck kan målrettes mot varierende risikonivå, kategorisert som lav, middels eller høy risiko. Dette er nyttig hvis listen over antimønstre er stor, siden du kan prioritere spørsmålene med størst ytelsespåvirkning. Alt du trenger å gjøre for å komme i gang er å samle en liste over dine forskjellige spørsmål i en fil og deretter sende dem som et argument til verktøyet.

Jeg brukte et utvalg samlet fra PMM Demo-miljøet for å generere følgende utdata:

[michael @ fedora ~] $ sqlcheck —filnavn PMMDemoQueries.txt

+————————————————————————-+

| SQLCHECK |

+————————————————————————-+

> RISIKONIVÅ :: ALLE ANTI-MØNSTER

> SQL FILNAVN :: utdata

> FARGEMODUS :: AKTIVERT

> VERBOSE-MODUS :: deaktivert

> DELIMITER ::;

————————————————————————-

===================== Resultater =====================

————————————————————————-

SQL-påstand: velg tabellskjema, tabellnavn, tabelltype, ifnull (motor, ‘ingen’) som motor,

ifnull (versjon, ‘0’) som versjon, ifnull (radformat, ‘ingen’) som radformat,

ifnull (tabellrader, ‘0’) som tabellrader, ifnull (datalengde, ‘0’) som datalengde,

ifnull (index_length, ‘0’) som index_length, ifnull (data_free, ‘0’) as data_free,

ifnull (create_options, ‘none’) som create_options fra information_schema.tables

der table_schema = ‘innodb_small’;

[output]: (HINTS) NULL Use

[Matching Expression: null]

...

===================== Sammendrag ====================

Alle antimønstre og tips :: 7

> Høy risiko :: 0

> Middels risiko :: 0

> Lav risiko :: 2

> Tips :: 5

Sqlcheck er dekket av Apache License 2.0. Prosjektet har fem bidragsytere, 187 forpliktelser og 1,4 000 stjerner.

Orkestrator

Orchestrator er et verktøy for høy tilgjengelighet og replikering. Det gir muligheten til å oppdage replikasjonstopologien til et MySQL-miljø ved å krype opp og ned i kjeden for å identifisere mestere og slaver. Den kan også brukes til å omformulere replikasjonstopologien din via GUI, og gir et dra-og-slipp-grensesnitt for å markedsføre en slave til en mester. Dette er en veldig sikker operasjon. Faktisk avviser Orchestrator ulovlige operasjoner for ikke å bryte systemet.

Endelig kan Orchestrator støtte gjenoppretting når noder lider av feil, da den bruker begrepet tilstand til å velge riktig gjenopprettingsmetode på en intelligent måte og til å bestemme riktig master promoteringsprosess som skal brukes.

Orchestrator er et annet verktøy levert av Shlomi Noach på GitHub. Den er dekket av Apache License 2.0. Orchestrator har 34 bidragsytere, 2780 forpliktelser og 900 stjerner i skrivende stund.

GitHub

Holder platene spinne

I begynnelsen av dette stykket snakket jeg om at MySQL-administratorens rolle var som en plate spinner. Noen ganger kan administratoren ha nytte av et rop fra en hjelpsom tilskuere når ting begynner å vakle og trenger oppmerksomhet. Percona Monitoring and Management (PMM) tar på seg jobben med å rope ut, fremhever områder som trenger oppmerksomhet og hjelper databaseadministratorer med å identifisere og løse databaseproblemer.

PMM inneholder en rekke best-of-breed åpen kildekodeverktøy, inkludert Orchestrator, for å gi et omfattende databaseovervåkings- og administrasjonsanlegg. Den grafiske presentasjonen gir lett assimilerte visuelle ledetråder til tilstanden til databaseserverne dine over tid, og støtter MySQL-, MariaDB- og MongoDB-servere. Sjekk ut vår offentlige demo!

Akkurat som de fem viktigste verktøyene mine, og som all Perconas programvare, er PMM helt gratis programvare med åpen kildekode som kan lastes ned fra Percona-nettstedet eller fra GitHub.

Hvert av verktøyene jeg har beskrevet adresserer et annet aspekt av MySQL-administratorens rolle. De bidrar til arsenalet ditt med databaseadministrasjonsverktøy, og lar deg utnytte erfaringene og ferdighetene til bidragsyterne til disse populære prosjektene. De er gratis og åpen kildekode og kan tilpasses behovene til ditt eget miljø om nødvendig, eller du kan bruke dem uten endring. Hvis du ennå ikke har utforsket disse perlene, anbefaler jeg at du ser nærmere på om de gir deg fordeler i forhold til dine nåværende metoder og verktøy.

Michael Coburn fungerer som produktsjef i Percona hvor han er ansvarlig for Percona Monitoring and Management. Med et fundament i systemadministrasjon liker Coburn å jobbe med SAN-teknologier og løsninger med høy tilgjengelighet.

New Tech Forum er et sted for å utforske og diskutere ny teknologi i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til[email protected].

$config[zx-auto] not found$config[zx-overlay] not found