Programmering

Top 5 open source-værktøjer til MySQL-administratorer

Michael Coburn er produktchef hos Percona.

For databaseadministratorer (DBA'er) kan det være lidt som at dreje plader at holde databaser kørende med toppræstationer: Det kræver smidighed, koncentration, hurtige reaktioner, et køligt hoved og lejlighedsvis opkald fra en hjælpsom tilskuere. Databaser er centrale for en vellykket drift af næsten alle applikationer. Da DBA'er er ansvarlige for en organisations data, er det vigtigt at finde pålidelige værktøjer, der hjælper dem med at strømline databasestyringsprocessen og lette de daglige vedligeholdelsesopgaver. DBA'er har brug for gode værktøjer til at holde deres systemer glat.

Så hvad er de afprøvede og pålidelige værktøjer til MySQL-administratorer? Her deler jeg mine top fem open source-værktøjer til MySQL-administratorer og diskuterer deres værdi i understøttelsen af ​​daglige MySQL-administrationsopgaver. For hver af dem har jeg givet et link til GitHub-arkivet og angivet antallet af GitHub-stjerner i skrivende stund.

Mycli

Mycli-projektet giver MySQL-kommandolinjeautomatik og syntaksfremhævning. Det er et af de mest populære MySQL-værktøjer til administratorer.

Sikkerhedsbegrænsninger som springværter og tofaktorautentificering giver mange MySQL DBA'er kun kommandolinjeadgang til deres systemer. Under sådanne omstændigheder er elskede GUI-værktøjer som MySQL Workbench, Monyog og andre ikke en mulighed.

På kommandolinjen tilbringes meget af tiden i en lys-sort terminalverden. Så en af ​​de bedste ting ved Mycli er rigdom af syntaksfremhævning. Dette giver dig f.eks. Mulighed for visuelt at adskille funktioner og operatører fra forespørgselsstrenge i HVOR klausuler. For en kort forespørgsel med en linje er dette måske ikke så meget, men det bliver en spilskifter, når du arbejder med forespørgsler, der udfører TILSLUTTE operationer over mere end et par tabeller. Gør jeg det TILSLUTTE bruger indekserede kolonner? Filtrerer jeg ved hjælp af førende wildcards i min HVOR klausuler? Mycli understøtter forespørgsler med flere linier og syntaksfremhævning, hvilket betyder, at du kan komme ind på de sektioner, der betyder mest, når du gennemgår eller optimerer forespørgsler. Du kan vælge mellem et antal syntaksfremhævende farveskemaer eller oprette dine egne.

Den anden dræberfunktion i Mycli er smart færdiggørelse. Dette giver dig mulighed for at vælge tabel- og kolonnenavne fra en kontekstafhængig liste ved kun at indtaste deres første par tegn. Ikke mere opgive dit nuværende input for at køre VIS Opret TABEL fordi du har glemt navnet på den kolonne, du vil have i din HVOR klausul!

Amjith Ramanujam

Med Mmycli kan du alias foretrukne forespørgsler ved hjælp af \ fs, f.eks. \ fs myAlias ​​myQuery. Dette er virkelig praktisk, da du derefter kan udføre forespørgslen ved hjælp af \ f myAlias når det er nødvendigt.

Mycli-projektet bruger BSD 3-licensen. Der er 44 bidragydere, 1,2 k forpligter og 5 000 stjerner.

Spøgelse

Hvis du som 99 procent af MySQL DBA'er står over for at implementere en ændring til en MySQL-tabel, mens du frygter for indvirkningen på produktionen, bør du overveje Gh-ost (GitHub Online Schema Migration). Gh-ost giver MySQL-skemaændringer uden at blokere for skrivning, uden at bruge udløsere, og med evnen til at stoppe og genoptage migrationen!

Hvorfor er dette så vigtigt? Siden MySQL 5.6 blev leveret med nyt ALTER TABLE ... ALGORITM = INPLACE DDL (Data Definition Language) -funktionalitet blev det muligt at ændre en tabel uden at blokere for skrivning til almindelige operationer såsom tilføjelse af et indeks (B-træ). Der er dog fortsat et par forhold, hvor skrivning (DML-udsagn) er blokeret, især tilføjelsen af ​​en FULD TEKST indeks, kryptering af tabelområdet og konvertering af en kolonnetype.

Andre populære online skemaændringsværktøjer, såsom Perconas pt-online-skemaændring, fungerer ved at implementere et sæt af tre udløsere (INDSÆT, OPDATERog SLET) på masteren for at holde en skygge-kopitabel synkroniseret med ændringer. Dette introducerer en lille ydeevne på grund af skriveforstærkning, men kræver mere markant syv forekomster af metadatalåse. Disse stopper effektivt DML-begivenheder (Data Manipulation Language).

Da Gh-ost fungerer ved hjælp af den binære log, er den ikke modtagelig for de trigger-baserede ulemper. Endelig er Gh-ost i stand til effektivt at reducere aktiviteten til nul begivenheder, så du kan sætte skemamigrationen på pause et stykke tid, hvis din server begynder at kæmpe, og genoptage, når aktivitetsboblen fortsætter.

Så hvordan fungerer Gh-ost? Som standard opretter Gh-ost forbindelse til en replika (slave), identificerer masteren og anvender migrationen på masteren. Den modtager ændringer på en replika til kildetabellen i binlog_format = ROW, parser loggen og konverterer disse udsagn til at blive genudført på masterens skyggetabel. Det holder styr på rækkeoptællingerne på repliken og identificerer, hvornår det er tid til at udføre en atomoverskæring (skift tabeller).

GitHub

Gh-ost giver en alternativ tilstand, hvor du udfører migrationen direkte på masteren (uanset om den har slaver eller ej), læser masterens tilbage binlog_format = RÆDE begivenheder, og anvend dem derefter igen på skyggetabellen.

En endelig mulighed er tilgængelig til kun at køre migrationen på repliken uden at påvirke masteren, så du kan teste eller på anden måde validere migrationen.

GitHub

Bemærk, at hvis dit skema har udenlandske nøgler, fungerer Gh-ost muligvis ikke rent, da denne konfiguration ikke understøttes.

Bemærk, at eg-online-alter-bord var forgængeren til Gh-ost. Du kan læse en sammenligning mellem Gh-ost og pt-online-skemaændringspræstationer af Peter Zaitsev, Perconas administrerende direktør sammen med et svar fra Shlomi Noach, forfatteren og vedligeholderen af ​​OAK-værktøjssættet og Gh-ost.

Gh-ost-projektet bruger MIT-licensen. Det har 29 bidragydere, næsten 1 000 forpligtelser og 3 000 stjerner.

PhpMyAdmin

Et af de længst kørende og mest modne projekter blandt MySQL-værktøjer er det ærværdige PhpMyAdmin-værktøj, der bruges til at administrere MySQL over internettet. phpMyAdmin giver DBA mulighed for at gennemse og ændre MySQL-databaseobjekter: databaser, tabeller, visninger, felter og indekser. Der er muligheder for at udføre dataeksport i mere end et dusin formater, ændre MySQL-brugere og privilegier og - min favorit - udføre ad-hoc-forespørgsler.

Du finder også en Status-fane, der dynamisk plotter spørgsmål, forbindelser / processer og netværkstrafik til din givne databaseinstans sammen med en Advisor-fane, der viser dig en liste over mulige ydeevneproblemer sammen med anbefalinger til, hvordan du afhjælper.

PhpMyAdmin bruger GPLv2-licensen. Dette er et kæmpe projekt med mere end 800 bidragydere, en forbløffende 112k-forpligtelse og 2,7k stjerner. En online demo er tilgængelig på //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL-antimønstre kan sænke forespørgsler, men det kræver ofte erfarne DBA'er og udviklere, der porer over kode for at identificere og løse dem. Sqlcheck afspejler Joy Arulrajs bestræbelser på at kodificere bogen "SQL Anti-mønstre: Undgå faldgruber ved databaseprogrammering" af Bill Karwin. Karwin identificerer fire kategorier af anti-mønster:

  1. Logisk database design
  2. Fysisk database design
  3. Forespørgsel
  4. Applikationsudvikling
Glæde Arulraj

Sqlcheck kan målrettes mod forskellige risikoniveauer, kategoriseret som lav, medium eller høj risiko. Dette er nyttigt, hvis din liste over antimønstre er stor, da du kan prioritere forespørgsler med den største ydeevneeffekt. Alt hvad du skal gøre for at komme i gang er at samle en liste over dine forskellige forespørgsler i en fil og derefter sende dem som et argument til værktøjet.

Jeg brugte en prøve indsamlet fra PMM Demo-miljøet til at generere følgende output:

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

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

| SQLCHECK |

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

> RISIKONIVEAU :: ALLE ANTI-MØNSTER

> SQL FILNAVN :: output

> FARVETILSTAND :: AKTIVERET

> VERBOSE-TILSTAND :: Deaktiveret

> DELIMITER ::;

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

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

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

SQL-erklæring: vælg tabel_skema, tabelnavn, tabel_type, ifnull (motor, 'ingen') som motor,

ifnull (version, '0') som version, ifnull (rækkeformat, 'ingen') som rækkeformat,

ifnull (tabelrækker, '0') som tabelrækker, ifnull (datalængde, '0') som datalængde,

ifnull (index_length, '0') som index_length, ifnull (data_free, '0') som data_free,

ifnull (create_options, 'none') som create_options fra information_schema.tables

hvor table_schema = ‘innodb_small’;

[output]: (HINTS) NULL-brug

[Matchende udtryk: null]

...

==================== Resume ====================

Alle antimønstre og tip :: 7

> Høj risiko :: 0

> Medium risiko :: 0

> Lav risiko :: 2

> Tip :: 5

Sqlcheck er dækket af Apache License 2.0. Projektet har fem bidragydere, 187 forpligtelser og 1,4k stjerner.

Orkestrator

Orchestrator er et værktøj til styring af høj tilgængelighed og replikering. Det giver mulighed for at opdage replikationstopologien i et MySQL-miljø ved at kravle op og ned i kæden for at identificere mestre og slaver. Det kan også bruges til at omformulere din replikationstopologi via GUI, hvilket giver et træk-og-slip-interface til at promovere en slave til en master. Dette er en meget sikker operation. Faktisk afviser Orchestrator ulovlige handlinger for ikke at bryde dit system.

Endelig kan Orchestrator understøtte gendannelse, når knudepunkter lider af fejl, da den bruger begrebet tilstand til intelligent at vælge den korrekte gendannelsesmetode og til at beslutte den relevante masterpromoveringsproces, der skal bruges.

Orchestrator er et andet værktøj leveret af Shlomi Noach hos GitHub. Det er dækket af Apache License 2.0. Orchestrator har 34 bidragydere, 2.780 forpligtelser og 900 stjerner på tidspunktet for denne skrivning.

GitHub

Holder pladerne rundt

I starten af ​​dette stykke talte jeg om, at MySQL-administratorens rolle var som en pladespinner. Lejlighedsvis kan administratoren have gavn af et råb fra en hjælpsom tilskuer, når tingene begynder at vakle og har brug for opmærksomhed. Percona Monitoring and Management (PMM) påtager sig jobet med at råbe, fremhæver områder, der har brug for opmærksomhed og hjælper databaseadministratorer med at identificere og løse databaseproblemer.

PMM inkorporerer et antal open source-værktøjer, der er bedst af racen, inklusive Orchestrator, til at levere en omfattende databaseovervågnings- og styringsfacilitet. Dens grafiske præsentation giver let assimilerede visuelle spor til tilstanden af ​​dine databaseservere over tid og understøtter MySQL-, MariaDB- og MongoDB-servere. Tjek vores offentlige demo!

Ligesom mine top fem værktøjer og som al Perconas software er PMM helt gratis og open source-software, der kan downloades fra Percona-webstedet eller fra GitHub.

Hvert af de værktøjer, jeg har beskrevet, vedrører et andet aspekt af MySQL-administratorens rolle. De bidrager til dit arsenal af databasestyringsværktøjer og giver dig mulighed for at udnytte erfaringerne og færdighederne hos bidragyderne til disse populære projekter. De er gratis og open source og kan tilpasses behovene i dit eget miljø, hvis det er nødvendigt, eller du kan bruge dem uden ændringer. Hvis du endnu ikke har udforsket disse perler, anbefaler jeg, at du ser nærmere på, om de giver dig fordele i forhold til dine nuværende metoder og værktøjer.

Michael Coburn fungerer som produktchef i Percona, hvor han er ansvarlig for Percona Monitoring and Management. Med et fundament inden for systemadministration nyder Coburn at arbejde med SAN-teknologier og løsninger med høj tilgængelighed.

New Tech Forum giver et sted at udforske og diskutere nye virksomhedsteknologier i hidtil uset dybde og bredde. Valget er subjektivt baseret på vores valg af de teknologier, som vi mener er vigtige og af største interesse for læserne. accepterer ikke markedsføringssikkerhed til offentliggørelse og forbeholder sig retten til at redigere alt bidraget indhold. Send alle henvendelser til[email protected].