Programavimas

5 populiariausi atvirojo kodo įrankiai, skirti „MySQL“ administratoriams

Michaelas Coburnas yra „Percona“ produktų vadovas.

Duomenų bazių administratoriams (DBA) duomenų bazių veikimas maksimaliu našumu gali būti panašus į plokštelių sukimąsi: tam reikia judrumo, susikaupimo, greitos reakcijos, šalto proto ir retkarčiais skambučio iš naudingo žiūrovo. Duomenų bazės yra pagrindinės sėkmingos beveik visų programų operacijos. Kadangi DBA yra atsakingos už organizacijos duomenis, būtina rasti patikimus įrankius, kurie padėtų jiems supaprastinti duomenų bazės valdymo procesą ir palengvinti kasdienes priežiūros užduotis. DBA reikia gerų įrankių, kad jų sistemos sklandžiai suktųsi.

Taigi, kokie yra išbandyti ir patikimi „MySQL“ administratorių įrankiai? Čia dalinuosi penkiais populiariausiais „MySQL“ administratoriams skirtais atvirojo kodo įrankiais ir aptariu jų vertę palaikant kasdienes „MySQL“ administravimo užduotis. Kiekvienam iš jų pateikiau nuorodą į „GitHub“ saugyklą ir surašiau „GitHub“ žvaigždžių skaičių rašymo metu.

Mycli

Projektas „Mycli“ suteikia MySQL komandų eilutės automatinį užbaigimą ir sintaksės paryškinimą. Tai yra vienas iš populiariausių „MySQL“ įrankių administratoriams.

Saugumo apribojimai, pvz., Šuolių pagrindiniai kompiuteriai ir dviejų veiksnių autentifikavimas, daugeliui „MySQL“ DBA palieka komandinės eilutės prieigą tik prie jų sistemų. Tokiomis aplinkybėmis mėgstami GUI įrankiai, tokie kaip „MySQL Workbench“, „Monyog“ ir kiti, nėra išeitis.

Komandinėje eilutėje didžioji laiko dalis praleidžiama „juodai šviesiai juodame“ ​​pasaulyje. Taigi vienas geriausių „Mycli“ dalykų yra jo sintaksės paryškinimo turtingumas. Tai leidžia, pavyzdžiui, vizualiai atskirti funkcijas ir operatorius nuo užklausos eilučių KUR sąlygos. Trumpai, vienos eilutės užklausai, tai gali būti ne tokia didelė problema, tačiau ji tampa žaidimų keitikliu, kai dirbate su užklausomis, kurios atlieka PRISIJUNGTI operacijos per daugiau nei porą lentelių. Ar aš darau PRISIJUNGTI naudojant indeksuotus stulpelius? Ar aš filtruoju naudodamas pagrindinius pakaitos simbolius KUR sąlygos? „Mycli“ palaiko kelių eilučių užklausas ir sintaksės paryškinimą, o tai reiškia, kad galite patekti į svarbiausias skiltis peržiūrėdami ar optimizuodami užklausas. Galite pasirinkti iš daugybės sintaksės paryškinančių spalvų schemų arba sukurti savo.

Kita „Mycli“ žudikų savybė yra protingas užbaigimas. Tai leidžia jums pasirinkti lentelių ir stulpelių pavadinimus iš kontekstui jautraus sąrašo, įvesdami tik kelis pirmuosius jų simbolius. Nebereikia atsisakyti dabartinio įvesties RODYTI SUKURTI LENTEL. nes pamiršote norimo stulpelio pavadinimą KUR sąlyga!

Amjith Ramanujam

Naudodami „Mmycli“ galite naudoti mėgstamiausias užklausas \ fs, pvz. \ fs myAlias ​​myQuery. Tai tikrai patogu, nes tada galite atlikti užklausą naudodami \ f myAlias kai tik to reikia.

„Mycli“ projekte naudojama BSD 3 licencija. Yra 44 bendraautoriai, 1,2 tūkst. Įsipareigojimų ir 5 tūkst. Žvaigždžių.

Gh-ost

Jei, kaip ir 99 proc. „MySQL“ DBA, susidūrėte su „MySQL“ lentelės pakeitimu, bijodami poveikio gamybai, turėtumėte apsvarstyti „Gh-ost“ („GitHub Online Schema Migration“). „Gh-ost“ suteikia „MySQL“ schemos pakeitimus neužblokuodamas rašymo, nenaudodamas trigerių ir turėdamas galimybę pristabdyti ir atnaujinti perkėlimą!

Kodėl tai taip svarbu? Kadangi „MySQL 5.6“ pristatyta su nauja KEITIMO LENTELĖ ... ALGORITHM = INPLACE DDL (duomenų apibrėžimo kalba) funkciją, buvo įmanoma modifikuoti lentelę neužblokuojant rašymo įprastoms operacijoms, tokioms kaip indeksas (B medis). Tačiau išlieka keletas sąlygų, kai rašymas (DML pareiškimai) yra užblokuotas, ypač a pridėjimas PILNAS TEKSTAS indeksą, lentų srities šifravimą ir stulpelio tipo konversiją.

Kiti populiarūs internetiniai schemos keitimo įrankiai, pvz., Perconos pt-online-schema-change, veikia įgyvendinant trijų aktyviklių rinkinį (ĮDĖTI, ATNAUJINTIir IŠTRINTI), kad šešėlinės kopijos lentelė būtų sinchronizuojama su pakeitimais. Tai nustato nedidelę našumo bausmę dėl rašymo stiprinimo, tačiau dar svarbiau - septyni metaduomenų užrakto atvejai. Šie efektyviai sustabdo DML (Data Manipulation Language) įvykius.

Kadangi „Gh-ost“ veikia naudodamas dvejetainį žurnalą, jis nėra jautrus trigeriais pagrįstiems trūkumams. Galiausiai „Gh-ost“ gali efektyviai sustabdyti veiklą iki nulio įvykių, leisdamas kuriam laikui pristabdyti schemos perkėlimą, jei jūsų serveris pradeda kovoti, ir atnaujinti, kai veiklos burbulas juda toliau.

Taigi, kaip veikia „Gh-ost“? Pagal numatytuosius nustatymus „Gh-ost“ prisijungia prie replikos (vergo), identifikuoja magistrą ir taiko perėjimą ant pagrindinio. Jis gauna pakeitimus šaltinio lentelės kopijoje binlog_format = ROW, analizuoja žurnalą ir paverčia šiuos sakinius pakartotinai vykdomais pagrindiniame šešėliniame lentelėje. Jis seka kopijų eilučių skaičių ir nustato, kada atėjo laikas atlikti atominį perjungimą (perjungimo lentelės).

„GitHub“

„Gh-ost“ suteikia alternatyvų režimą, kai jūs atliekate perkėlimą tiesiai ant pagrindinio įrenginio (nesvarbu, ar jis turi vergus, ar ne), perskaitykite pagrindinį binlog_format = EILUTĖ įvykius, tada vėl pritaikykite juos ant šešėlinės lentelės.

Galima parinktis paleisti perkėlimą tik replikoje, nepaveikiant pagrindinio įrenginio, todėl galite išbandyti ar kitaip patvirtinti perkėlimą.

„GitHub“

Atminkite, kad jei jūsų schemoje yra svetimi raktai, „Gh-ost“ gali neveikti švariai, nes ši konfigūracija nepalaikoma.

Atkreipkite dėmesį, kad „ąžuolas-internetas-alter-stalas“ buvo „Gh-ost“ pirmtakas. Galite perskaityti „Percona“ generalinio direktoriaus Peterio Zaicevo „Gh-ost“ ir „pt-online-schema-change“ atlikimo palyginimą kartu su Ol įrankių rinkinio ir „Gh-ost“ autorės ir prižiūrėtojos Shlomi Noach atsakymu.

„Gh-ost“ projekte naudojama MIT licencija. Joje dalyvauja 29 dalyviai, įsipareigoja beveik 1 tūkst. Ir 3 tūkst. Žvaigždžių.

„PhpMyAdmin“

Vienas iš ilgiausiai veikiančių ir brandžiausių „MySQL“ įrankių yra gerbiamas „PhpMyAdmin“ įrankis, naudojamas administruoti „MySQL“ internete. „phpMyAdmin“ leidžia DBA naršyti ir modifikuoti „MySQL“ duomenų bazės objektus: duomenų bazes, lenteles, rodinius, laukus ir rodykles. Yra galimybės eksportuoti duomenis naudojant daugiau nei dešimt formatų, modifikuoti „MySQL“ vartotojus ir privilegijas ir - mano mėgstamiausia - vykdyti specialias užklausas.

Taip pat rasite skirtuką „Būsena“, kuriame dinamiškai pateikiami klausimai, ryšiai / procesai ir tinklo srautas jūsų nurodytai duomenų bazės egzemplioriui, taip pat skirtuką „Patarėjas“, kuriame rodomas galimų našumo problemų sąrašas ir rekomendacijos, kaip juos pašalinti.

„PhpMyAdmin“ naudoja GPLv2 licenciją. Tai didžiulis projektas, kuriame dalyvauja daugiau nei 800 dalyvių, nuostabi 112 tūkst. Įsipareigojimų ir 2,7 tūkst. Žvaigždžių. Internetinę demonstracinę versiją galite rasti adresu //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL anti-modeliai gali sulėtinti užklausas, tačiau dažnai reikia patyrusių DBA ir kūrėjų, kurie perduoda kodą, kad juos identifikuotų ir išspręstų. Sqlcheckas atspindi Joy Arulraj pastangas kodifikuoti Billo Karwino knygą „SQL anti-patterns: Vengiant duomenų bazių programavimo spąstų“. Karwinas išskiria keturias antimustrų kategorijas:

  1. Loginis duomenų bazės dizainas
  2. Fizinės duomenų bazės dizainas
  3. Užklausa
  4. Programų kūrimas
Džiaugsmas Arulraj

„Sqlcheck“ gali būti nukreiptas į skirtingą rizikos lygį, priskiriamą žemos, vidutinės ar didelės rizikos kategorijai. Tai naudinga, jei jūsų antimalių modelių sąrašas yra didelis, nes galite teikti pirmenybę užklausoms, turinčioms didžiausią našumą. Viskas, ką jums reikia padaryti norint pradėti, yra surinkti skirtingų užklausų sąrašą į failą ir perduoti jas kaip argumentą įrankiui.

Aš panaudojau pavyzdį, surinktą iš PMM Demo aplinkos, norėdamas sukurti šį rezultatą:

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

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

| SQLCHECK |

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

> RIZIKOS LYGIS: VISI ANTAMATINIAI

> SQL FILE NAME :: išvestis

> SPALVOS REŽIMAS: ĮJUNGTA

> VERBOSE REŽIMAS :: IŠJUNGTA

> DELIMITER ::;

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

==================== Rezultatai =====================

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

SQL sakinys: kaip variklį pasirinkite table_schema, table_name, table_type, ifnull (engine, ‘none’),

ifnull (versija, „0“) kaip versija, ifnull (eilutės_formatas, ‘nėra’) kaip eilutės_formatas,

ifnull (table_rows, ‘0’) kaip table_rows, ifnull (duomenų_length, ‘0’) kaip data_length,

ifnull (indekso_ ilgis, „0“) kaip indekso ilgis, ifnull (duomenų_ laisvas, ‘0’) kaip duomenų_free,

ifnull (create_options, ‘none’) kaip create_options iš information_schema.tables

kur table_schema = ‘innodb_small’;

[išvestis]: (PATARIMAI) NULL naudojimas

[Atitinkanti išraiška: niekinė]

...

==================== Santrauka ===================

Visi antraštiai ir patarimai :: 7

> Didelė rizika: 0

> Vidutinė rizika: 0

> Mažos rizikos :: 2

> Patarimai :: 5

„Sqlcheck“ taikoma „Apache License 2.0“. Projekte yra penki dalyviai, 187 įsipareigojimai ir 1,4 tūkst. Žvaigždžių.

Orkestro vadovas

„Orchestrator“ yra didelio prieinamumo ir replikacijos valdymo įrankis. Tai suteikia galimybę atrasti „MySQL“ aplinkos replikacijos topologiją, nuskaitydama grandinę aukštyn ir žemyn, kad atpažintų šeimininkus ir vergus. Jis taip pat gali būti naudojamas pertvarkyti jūsų replikacijos topologiją per GUI, suteikiant „vilkimo ir nuleidimo“ sąsają, kad būtų paverstas vergas valdovui. Tai labai saugi operacija. Iš tikrųjų „Orchestrator“ atmeta bet kokias neteisėtas operacijas, kad nesugadintų jūsų sistemos.

Galiausiai „Orchestrator“ gali palaikyti atkūrimą, kai mazgai patiria nesėkmių, nes jis naudoja valstybės sąvoką, kad protingai pasirinktų teisingą atkūrimo metodą ir nuspręstų, kokį tinkamą pagrindinio skatinimo procesą naudoti.

„Orchestrator“ yra dar viena priemonė, kurią pateikė Shlomi Noach iš „GitHub“. Jai taikoma „Apache License 2.0“. Rašymo metu „Orchestrator“ turi 34 bendradarbius, 2780 įsipareigojimų ir 900 žvaigždžių.

„GitHub“

Plokštelės sukamos

Šio kūrinio pradžioje kalbėjau apie tai, kad „MySQL“ administratoriaus vaidmuo yra panašus į plokštelių suktuką. Kartais administratoriui gali praversti paslaugaus stebėtojo šauksmas, kai viskas pradeda klibėti ir jiems reikia dėmesio. „Percona Monitoring and Management“ (PMM) prisiima rėkimo darbą, išryškindamas sritis, kurioms reikia dėmesio, ir padėdamas duomenų bazių administratoriams nustatyti ir išspręsti duomenų bazės problemas.

PMM apima daugybę geriausių atvirojo kodo įrankių, įskaitant „Orchestrator“, kad suteiktų išsamią duomenų bazių stebėjimo ir valdymo priemonę. Jos grafinis pateikimas suteikia lengvai įsisavinamų vaizdinių įžvalgų apie duomenų bazės serverių būklę laikui bėgant, palaiko MySQL, MariaDB ir MongoDB serverius. Peržiūrėkite mūsų viešą demonstracinę versiją!

Kaip ir mano geriausių penkių įrankių, ir kaip visos „Percona“ programinės įrangos, PMM yra visiškai nemokama ir atviro kodo programinė įranga, kurią galima atsisiųsti iš „Percona“ svetainės arba iš „GitHub“.

Kiekvienas mano aprašytas įrankis skirtas skirtingam „MySQL“ administratoriaus vaidmens aspektui. Jie prisideda prie jūsų duomenų bazių valdymo įrankių arsenalo ir leidžia pasinaudoti šių populiarių projektų dalyvių patirtimi ir įgūdžiais. Jie yra nemokami ir atviri šaltiniai ir prireikus gali būti pritaikyti jūsų aplinkos poreikiams, arba galite juos naudoti be pakeitimų. Jei dar neištyrėte šių brangakmenių, rekomenduoju atidžiau pasidomėti, ar jie siūlo jums pranašumų, palyginti su dabartiniais jūsų metodais ir įrankiais.

Michaelas Coburnas yra produktų vadovas „Percona“, kur jis yra atsakingas už „Percona“ stebėjimą ir valdymą. Turėdamas sistemų administravimo pagrindą, „Coburn“ mėgsta dirbti su SAN technologijomis ir aukšto prieinamumo sprendimais.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu[email protected].