Programiranje

Top 5 odprtokodnih orodij za skrbnike MySQL

Michael Coburn je produktni vodja pri Perconi.

Za skrbnike baz podatkov (DBA) je vzdrževanje baz podatkov, ki delujejo z največjo zmogljivostjo, podobno vrtenju plošč: potrebna je gibčnost, zbranost, hitre reakcije, hladna glava in občasno klic koristnega opazovalca. Baze podatkov so osrednjega pomena za uspešno delovanje skoraj vseh aplikacij. Ker so DBA odgovorni za podatke organizacije, je iskanje zanesljivih orodij, ki jim pomagajo poenostaviti postopek upravljanja baze podatkov in olajšajo vsakodnevne naloge vzdrževanja. DBA potrebujejo dobra orodja, da se njihovi sistemi nemoteno vrtijo.

Kakšna so torej preizkušena orodja za skrbnike MySQL? Tu delim svojih pet najboljših odprtokodnih orodij za skrbnike MySQL in razpravljam o njihovi vrednosti v podporo vsakodnevnim skrbniškim nalogam MySQL. Za vsakega od njih sem dal povezavo do skladišča GitHub in navedel število zvezd GitHub v času pisanja.

Mycli

Projekt Mycli ponuja samodejno dokončanje ukazne vrstice MySQL in poudarjanje sintakse. Je eno izmed najbolj priljubljenih orodij MySQL za skrbnike.

Varnostne omejitve, kot so preskočni gostitelji in dvofaktorska overitev, mnogim MySQL DBA omogočajo dostop do sistemov le z ukazno vrstico. V takih okoliščinah priljubljena orodja GUI, kot so MySQL Workbench, Monyog in druga, niso na voljo.

V ukazni vrstici večino časa preživimo v svetlem terminalskem svetu. Ena izmed najboljših stvari Myclija je bogastvo poudarjanja skladnje. Tako lahko na primer vizualno ločite funkcije in operatorje od poizvedbenih nizov v KJE klavzule. Za kratko, enovrstno poizvedbo to morda ni tako velika težava, vendar postane igralec, ko delate z poizvedbami, ki PRIDRUŽITE SE več kot nekaj tabel. Ali delam PRIDRUŽITE SE z uporabo indeksiranih stolpcev? Ali filtriram z uporabo vodilnih nadomestnih znakov v mojem KJE klavzule? Mycli podpira večvrstične poizvedbe in poudarjanje sintakse, kar pomeni, da lahko pri pregledu ali optimizaciji poizvedb najdete poglavja, ki so najpomembnejša. Izbirate lahko med številnimi barvnimi shemami za poudarjanje sintakse ali ustvarite svojo.

Druga ubijalska značilnost Myclija je pametno dokončanje. To vam omogoča, da izberete imena tabel in stolpcev s kontekstno občutljivega seznama tako, da vnesete le prvih nekaj znakov. Nič več opuščanja trenutnega vnosa za zagon PRIKAŽI Ustvari tabelo ker ste pozabili ime stolpca, ki ga želite v svojem KJE klavzula!

Amjith Ramanujam

Z Mmyclijem lahko s pomočjo vzdevkov poimenujete priljubljene poizvedbe \ fs, npr. \ fs myAlias ​​myQuery. To je zelo priročno, saj lahko nato poizvedbo izvedete z uporabo \ f myAlias kadar koli je to potrebno.

Projekt Mycli uporablja licenco BSD 3. Obstaja 44 sodelavcev, 1,2 tisoč prevzema in 5 tisoč zvezdic.

Gh-ost

Če ste se, tako kot 99 odstotkov MySQL DBA-jev, soočili z izvajanjem spremembe tabele MySQL in se bali vpliva na proizvodnjo, potem razmislite o Gh-ost (GitHub Online Schema Migration). Gh-ost zagotavlja spremembe sheme MySQL brez blokiranja zapisov, brez uporabe sprožilcev in z možnostjo zaustavitve in nadaljevanja selitve!

Zakaj je to tako pomembno? Ker je MySQL 5.6 dobavljen z novim ALTER TABLE ... ALGORITEM = NAMESTI Funkcija DDL (Data Definition Language) je omogočila spreminjanje tabele brez blokiranja zapisov za običajne operacije, kot je dodajanje indeksa (B-drevo). Vendar pa je še vedno nekaj pogojev, ko je zapisovanje (stavki DML) blokirano, predvsem dodajanje datoteke FULLTEXT indeks, šifriranje prostora tabel in pretvorba vrste stolpca.

Druga priljubljena spletna orodja za spreminjanje shem, kot je Percona pt-online-schema-change, delujejo tako, da izvajajo nabor treh sprožilcev (VSTAVI, NADGRADNJA, in IZBRIŠI) na glavni enoti, da tabela senčnih kopij ostane sinhronizirana s spremembami. To uvaja majhno kazen za zmogljivost zaradi ojačevanja zapisov, bolj pomembno pa je sedem primerov zaklepanja metapodatkov. Ti dejansko zaustavijo dogodke DML (jezik za upravljanje podatkov).

Ker Gh-ost deluje z binarnim dnevnikom, ni občutljiv na pomanjkljivosti, ki temeljijo na sprožilcih. Končno lahko Gh-ost učinkovito zmanjša aktivnost na nič dogodkov, kar vam omogoča, da začasno zaustavite selitev sheme, če se strežnik začne boriti, in nadaljuje, ko se oblaček dejavnosti premakne naprej.

Kako torej deluje Gh-ost? Privzeto se Gh-ost poveže z repliko (pomožnim), identificira glavno enoto in uporabi migracijo na glavni enoti. Sprejema spremembe na replici izvorne tabele v binlog_format = ROW, razčleni dnevnik in pretvori te stavke, da se znova izvedejo v senčni tabeli glavnega mesta. Spremlja štetje vrstic na repliki in ugotavlja, kdaj je čas za izvedbo atomskega prereza (preklopne tabele).

GitHub

Gh-ost ponuja alternativni način, v katerem migracijo izvedete neposredno na glavnem računalniku (ne glede na to, ali ima podrejene) ali preberete binlog_format = RED dogodke in jih nato znova uporabite v tabeli senc.

Na voljo je zadnja možnost, da migracijo zaženete samo na repliki, ne da bi to vplivalo na glavno datoteko, tako da lahko migracijo preizkusite ali drugače potrdite.

GitHub

Če ima vaša shema tuje ključe, potem Gh-ost morda ne bo deloval čisto, saj ta konfiguracija ni podprta.

Upoštevajte, da je bil hrast-online-alter-table predhodnik Gh-osta. Preberete lahko primerjavo med uspešnostjo Gh-ost in pt-online-schema-change Petra Zaitseva, predsednika uprave Percone, skupaj z odzivom Shlomi Noach, avtorja in vzdrževalca orodij OAK in Gh-ost.

Projekt Gh-ost uporablja licenco MIT. Ima 29 sodelavcev, skoraj 1 tisoč prevzetih obveznosti in 3 tisoč zvezdic.

PhpMyAdmin

Eden najdaljših in najbolj zrelih projektov med orodji MySQL je častitljivo orodje PhpMyAdmin, ki se uporablja za upravljanje MySQL prek spleta. phpMyAdmin DBA omogoča brskanje in spreminjanje objektov baze podatkov MySQL: zbirke podatkov, tabele, pogledi, polja in indeksi. Obstajajo možnosti za izvoz podatkov z več kot deset oblik zapisa, spreminjanje uporabnikov in privilegijev MySQL in - moje najljubše - izvajanje ad hoc poizvedb.

Našli boste tudi zavihek Stanje, ki dinamično izrisuje vprašanja, povezave / procese in omrežni promet za dani primerek baze podatkov, skupaj z zavihkom Svetovalca, ki prikazuje seznam možnih težav z zmogljivostjo skupaj s priporočili, kako jih odpraviti.

PhpMyAdmin uporablja licenco GPLv2. To je ogromen projekt z več kot 800 sodelavci, neverjetnimi 112 tisoč obvezami in 2,7 tisoč zvezdicami. Spletna predstavitev je na voljo na //demo.phpmyadmin.net/master-config/

Sqlcheck

Proti vzorci SQL lahko upočasnijo poizvedbe, vendar pogosto potrebujejo izkušeni DBA in razvijalci, ki prenašajo kodo, da jih prepoznajo in rešijo. Sqlcheck odraža prizadevanja Joy Arulraj za kodifikacijo knjige "SQL Anti-vzorci: izogibanje pastem programiranja baz podatkov" Billa Karwina. Karwin opredeli štiri kategorije proti vzorcem:

  1. Logična zasnova baze podatkov
  2. Zasnova fizične baze podatkov
  3. Poizvedba
  4. Razvoj aplikacij
Joy Arulraj

Sqlcheck lahko ciljate na različne stopnje tveganja, ki so kategorizirani kot nizko, srednje ali visoko tveganje. To je koristno, če je vaš seznam vzorcev velik, saj lahko poizvedbe prednostno določite z največjim vplivom na učinkovitost. Za začetek morate le zbrati seznam svojih ločenih poizvedb v datoteko in jih nato posredovati kot argument orodju.

Uporabil sem vzorec, zbran iz demo okolja PMM, da sem ustvaril naslednje rezultate:

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

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

| SQLCHECK |

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

> RAVEN TVEGANJA :: VSE PROTI VZORCI

> IME DATOTEKE SQL :: izhod

> BARVNI NAČIN: Omogočeno

> VERBOSE MODE :: INVALID

> DELIMITER ::;

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

==================== Rezultati =====================

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

Izjava SQL: izberite shemo_tabele, ime_tabele, vrsto_tabele, ifnull (motor, 'none') kot motor,

ifnull (različica, '0') kot različica, ifnull (format_vrstice, 'none') kot format_vrstice,

ifnull (table_rows, ‘0’) kot vrstic_tabel, ifnull (data_length, ‘0’) kot data_length,

ifnull (index_length, ‘0’) kot index_length, ifnull (data_free, ‘0’) kot data_free,

ifnull (create_options, ‘none’) kot create_options iz information_schema.tables

kjer je table_schema = 'innodb_small';

[output]: (HINTS) NULL Uporaba

[Ujemanje izraza: null]

...

==================== Povzetek =====================

Vsi vzorci in nasveti :: 7

> Visoko tveganje :: 0

> Srednje tveganje :: 0

> Nizko tveganje :: 2

> Namigi :: 5

Sqlcheck zajema licenca Apache 2.0. Projekt ima pet sodelujočih, 187 zavez in 1,4 tisoč zvezdic.

Orkestrator

Orchestrator je orodje za upravljanje z razpoložljivostjo in kopiranjem. Omogoča odkrivanje replikacijske topologije okolja MySQL s plazenjem navzgor in navzdol po verigi, da se identificirajo nadrejeni in podrejeni. Uporabite ga lahko tudi za refaktoriranje vaše topologije replikacije prek grafičnega uporabniškega vmesnika, ki zagotavlja vmesnik povleci in spusti za promocijo podrejenega v glavnega. To je zelo varna operacija. Orchestrator dejansko zavrača kakršne koli nezakonite operacije, da ne bi poškodoval vašega sistema.

Končno lahko Orchestrator podpira obnovitev, kadar vozli trpijo zaradi napak, saj s konceptom države inteligentno izbere pravilno metodo obnovitve in se odloči za ustrezen glavni postopek promocije.

Orchestrator je drugo orodje, ki ga ponuja Shlomi Noach pri GitHub. Pokriva ga licenca Apache 2.0. Orchestrator ima 34 sodelavcev, 2.780 prevzema obveznosti in 900 zvezdic v času pisanja tega članka.

GitHub

Vzdrževanje vrtenja plošč

Na začetku tega članka sem govoril o vlogi skrbnika MySQL, ki je podobna vlogi vrtljive plošče. Občasno lahko skrbniku koristi krik ustrežljivega opazovalca, ko se stvari začnejo nihati in potrebujejo pozornost. Percona Monitoring and Management (PMM) prevzame naloge kričanja, izpostavljanja področij, ki jim je treba posvetiti pozornost, in skrbnikom baz podatkov pomaga prepoznati in rešiti težave z bazo podatkov.

PMM vključuje vrsto najboljših odprtokodnih orodij, vključno z Orchestratorjem, za zagotavljanje celovitega nadzora in upravljanja zbirk podatkov. Njegova grafična predstavitev omogoča enostavno asimilirane vizualne namige o stanju vaših strežnikov baz podatkov skozi čas in podpira strežnike MySQL, MariaDB in MongoDB. Oglejte si naš javni demo!

Tako kot mojih pet najboljših orodij in tako kot vsa programska oprema podjetja Percona je tudi PMM popolnoma brezplačna in odprtokodna programska oprema, ki jo lahko prenesete s spletnega mesta Percona ali iz GitHub-a.

Vsako od orodij, ki sem jih opisal, obravnava drugačen vidik vloge skrbnika MySQL. Prispevajo k vašemu arzenalu orodij za upravljanje baz podatkov in vam omogočajo, da izkoristite izkušnje in spretnosti sodelujočih v teh priljubljenih projektih. So brezplačni in odprtokodni, po potrebi jih lahko prilagodite potrebam svojega okolja ali pa jih uporabite brez sprememb. Če teh draguljev še niste raziskali, vam priporočam, da si podrobneje ogledate, ali vam ponujajo prednosti pred vašimi trenutnimi metodami in orodji.

Michael Coburn je vodja izdelkov v podjetju Percona, kjer je odgovoren za nadzor in upravljanje podjetja Percona. Coburn, ki temelji na sistemski administraciji, uživa v delu s SAN tehnologijami in rešitvami z visoko razpoložljivostjo.

Forum New Tech ponuja prizorišče za raziskovanje in razpravo o nastajajoči podjetniški tehnologiji v globini in širini brez primere. Izbor je subjektiven in temelji na našem izboru tehnologij, za katere menimo, da so pomembne in najbolj zanimajo bralce. ne sprejema tržnih zavarovanj za objavo in si pridržuje pravico do urejanja celotne prispevane vsebine. Vsa vprašanja pošljite na[email protected].

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