Ohjelmointi

Viisi parasta avoimen lähdekoodin työkalua MySQL-järjestelmänvalvojille

Michael Coburn on Perconan tuotepäällikkö.

Tietokantojen ylläpitäjille (DBA) tietokantojen pitäminen huipputasolla voi olla vähän kuin levyjen pyöriminen: Se vaatii ketteryyttä, keskittymistä, nopeita reaktioita, viileää mieltä ja ajoittaista kutsua avulias katsoja. Tietokannat ovat keskeisiä lähes kaikkien sovellusten onnistuneen toiminnan kannalta. Koska DBA: t ovat vastuussa organisaation tiedoista, on tärkeää löytää luotettavia työkaluja, jotka auttavat heitä virtaviivaistamaan tietokannan hallintaprosessia ja helpottamaan päivittäisiä ylläpitotehtäviä. DBA: t tarvitsevat hyviä työkaluja, jotta järjestelmät pyörivät sujuvasti.

Joten mitkä ovat kokeiltuja ja luotettavia työkaluja MySQL-järjestelmänvalvojille? Jaan tässä viiden parhaan avoimen lähdekoodin työkalun MySQL-järjestelmänvalvojille ja keskustelen niiden arvosta päivittäisten MySQL-hallintatehtävien tuessa. Kullekin heistä olen toimittanut linkin GitHub-arkistoon ja luetellut GitHub-tähtien lukumäärän kirjoituksen aikana.

Mycli

Mycli-projekti tarjoaa MySQL-komentorivin automaattisen täydennyksen ja syntaksikorostuksen. Se on yksi suosituimmista MySQL-työkaluista järjestelmänvalvojille.

Suojausrajoitukset, kuten hyppyisännät ja kaksivaiheinen todennus, jättävät monille MySQL DBA -laitteille vain komentorivin pääsyn järjestelmiinsä. Tällaisissa olosuhteissa rakastetut GUI-työkalut, kuten MySQL Workbench, Monyog ja muut, eivät ole vaihtoehto.

Komentorivillä suuri osa ajasta vietetään valoa mustaa -pääte-maailmassa. Joten yksi Myclin parhaista asioista on sen syntaksikorostuksen rikkaus. Tämän avulla voit esimerkiksi erottaa toiminnot ja operaattorit visuaalisesti kyselymerkkijonoista MISSÄ lausekkeet. Lyhyellä, yksirivisellä kyselyllä tämä ei ehkä ole niin iso juttu, mutta siitä tulee pelinvaihtaja, kun työskentelet kyselyjen kanssa, jotka suorittavat LIITTYÄ SEURAAN toimintoja yli parin taulukon yli. Teenkö LIITTYÄ SEURAAN käytät indeksoituja sarakkeita? Suodatanko johtavia jokerimerkkejä omassani MISSÄ lausekkeet? Mycli tukee monirivisiä kyselyitä ja syntaksikorostusta, mikä tarkoittaa, että voit siirtyä tärkeimpiin osioihin kyselyjä tarkasteltaessa tai optimoiden. Voit valita useista syntaksin korostavista värimalleista tai luoda oman.

Toinen Myclin tappajaominaisuus on älykäs viimeistely. Tämän avulla voit valita taulukoiden ja sarakkeiden nimet kontekstiherkkästä luettelosta kirjoittamalla vain muutaman ensimmäisen merkin. Ei enää luovuttamista nykyisestä syötteestäsi suoritettavaksi NÄYTÄ LUO TAULUKKO koska unohdit haluamasi sarakkeen nimen MISSÄ lauseke!

Amjith Ramanujam

Mmyclin avulla voit käyttää aliaksen suosikkikyselyitä \ fs, esimerkiksi. \ fs myAlias ​​myQuery. Tämä on todella kätevää, koska voit sitten suorittaa kyselyn käyttämällä \ f myAlias aina kun sitä tarvitaan.

Mycli-projekti käyttää BSD 3 -lisenssiä. Avustajia on 44, 1,2 tuhatta sitoutumista ja 5 tuhatta tähteä.

Aave

Jos esimerkiksi 99 prosenttia MySQL DBA: sta on kohdannut muutoksen MySQL-taulukkoon pelkäämällä vaikutusta tuotantoon, kannattaa harkita Gh-ost (GitHub Online Schema Migration). Gh-ost tarjoaa MySQL-skeeman muutokset estämättä kirjoituksia, käyttämättä laukaisimia ja kykyä keskeyttää ja jatkaa siirtoa!

Miksi tämä on niin tärkeää? Koska MySQL 5.6 toimitettiin uuden kanssa ALTER-TAULUKKO ... ALGORITHM = INPLACE DDL (Data Definition Language) -toiminnolla voitiin muokata taulukkoa estämättä kirjoituksia tavallisille operaatioille, kuten hakemiston (B-puu) lisääminen. On kuitenkin olemassa muutamia ehtoja, joissa kirjoitukset (DML-lauseet) estetään, etenkin a: n lisääminen KOKO TEKSTI hakemisto, taulukotilan salaus ja saraketyypin muuntaminen.

Muut suositut online-skeeman muutostyökalut, kuten Perconan pt-online-schema-change, toimivat toteuttamalla kolmen laukaisimen joukko (LISÄÄ, PÄIVITTÄÄja POISTAA) isännällä varjo kopiotaulukon pitämiseksi synkronoituna muutosten kanssa. Tämä tuo mukanaan pienen suorituskyvyn rangaistuksen kirjoitusvahvistuksesta johtuen, mutta vielä tärkeämpää seitsemän metatietolukon esiintymää. Nämä pysäyttävät tehokkaasti DML (Data Manipulation Language) -tapahtumat.

Koska Gh-ost toimii binäärilokia käyttäen, se ei ole altis liipaisimiin perustuville haitoille. Lopuksi Gh-ost pystyy tehokkaasti rajoittamaan toiminnan nollatapahtumiin, jolloin voit keskeyttää kaavion siirron hetkeksi, jos palvelimesi alkaa taistella, ja jatkaa, kun aktiviteettikupla siirtyy eteenpäin.

Joten miten Gh-ost toimii? Oletusarvoisesti Gh-ost muodostaa yhteyden kopioon (orjaan), tunnistaa isännän ja käyttää siirtoa isäntään. Se vastaanottaa muutokset lähdetaulukon replikassa binlog_format = ROW -kohdassa, jäsentää lokin ja muuntaa nämä käskyt suoritettaviksi päällikön varjotaulukkoon. Se seuraa replikan rivien lukumäärää ja tunnistaa, milloin on aika suorittaa atomileikkaus (kytkentätaulukot).

GitHub

Gh-ost tarjoaa vaihtoehtoisen tilan, jossa suoritat siirron suoraan isännälle (riippumatta siitä, onko siinä orjia vai ei), lue takaisin binlog_format = RIVI tapahtumia ja levitä ne sitten uudelleen varjopöytään.

Viimeinen vaihtoehto on käytettävissä siirtämisen suorittamiseksi vain replikassa vaikuttamatta isäntään, joten voit testata tai muuten vahvistaa siirron.

GitHub

Huomaa, että jos skeemassasi on vieraita avaimia, Gh-ost ei välttämättä toimi puhtaasti, koska tätä kokoonpanoa ei tueta.

Huomaa, että tammi-online-alter-table oli Gh-ostin edeltäjä. Voit lukea vertailun Perconan toimitusjohtajan Peter Zaitsevin Gh-ost- ja pt-online-schema-change-suorituskyvyn sekä OAK-työkalupaketin ja Gh-ostin kirjoittajan ja ylläpitäjän Shlomi Noachin vastauksen.

Gh-ost-projekti käyttää MIT-lisenssiä. Sillä on 29 avustajaa, lähes 1 000 sitoutuu ja 3 000 tähteä.

PhpMyAdmin

Yksi pisin käynnissä olevista ja kypsimmistä projekteista MySQL-työkalujen joukossa on kunnioitettava PhpMyAdmin-työkalu, jota käytetään MySQL: n hallinnointiin verkossa. phpMyAdmin sallii DBA: n selata ja muokata MySQL-tietokantaobjekteja: tietokantoja, taulukoita, näkymiä, kenttiä ja hakemistoja. On olemassa vaihtoehtoja tietojen viemiseksi yli tusinan muodossa, muokata MySQL-käyttäjiä ja -oikeuksia sekä - suosikkini - suorittaa tapauskohtaisia ​​kyselyitä.

Löydät myös Tila-välilehden, joka piirtää dynaamisesti kysymyksiä, yhteyksiä / prosesseja ja verkkoliikennettä tietylle tietokantatilanteelle, sekä Ohjaaja-välilehden, joka näyttää luettelon mahdollisista suorituskykyongelmista sekä suosituksia niiden korjaamiseksi.

PhpMyAdmin käyttää GPLv2-lisenssiä. Tämä on valtava projekti, johon osallistuu yli 800 osallistujaa, hämmästyttävä 112 000 sitoutuu ja 2,7 tuhatta tähteä. Online-esittely on saatavilla osoitteessa //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL-mallien vastaiset mallit voivat hidastaa kyselyjä, mutta usein tunnistaa ja ratkaista kokeneet DBA: t ja kehittäjät hakevat koodia. Sqlcheck heijastaa Joy Arulrajin pyrkimyksiä kodifioida Bill Karwinin teos "SQL Anti-patterns: Avoiding the Sagfalls of Database Programming". Karwin yksilöi neljä anti-kuvion luokkaa:

  1. Looginen tietokannan suunnittelu
  2. Fyysisen tietokannan suunnittelu
  3. Kysely
  4. Sovellus kehitys
Ilo Arulraj

Sqlcheck voidaan kohdistaa vaihteleville riskitasoille, luokiteltuna mataliksi, keskisuuriksi tai suuriksi. Tästä on hyötyä, jos luettelo anti-malleista on suuri, koska voit priorisoida kyselyt, joilla on suurin suorituskyky. Aloittamiseen tarvitsee vain kerätä luettelo erillisistä kyselyistä tiedostoon ja välittää ne sitten argumenttina työkalulle.

Käytin PMM Demo -ympäristöstä kerättyä otosta seuraavan tuotoksen tuottamiseen:

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

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

| SQLCHECK |

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

> RISKITASO :: KAIKKI VASTUUNVASTUUT

> SQL FILE NAME :: tuotos

> VÄRITILA :: KÄYTÖSSÄ

> VERBOSE-TILA :: POIS

> DELIMITER ::;

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

==================== Tulokset =====================

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

SQL-lause: valitse moottoriksi table_schema, table_name, table_type, ifnull (engine, ‘none’),

ifnull (versio, ’0’) versiona, ifnull (rivimuoto, ‘ei mitään’) rivimuotona,

ifnull (taulukon_rivit, ‘0’) taulukon_riveinä, ifnull (datan_pituus, ’0’) datan_pituudeksi

ifnull (indeksin_pituus, ‘0’) indeksin_pituudeksi, ifnull (datan_vapaa, ‘0’) datan_vapaiseksi,

ifnull (create_options, ‘none’) luontiasetuksina from information_schema.tables

missä table_schema = ’innodb_small’;

[lähtö]: (VIHJEITÄ) NULL-käyttö

[Vastaava lauseke: null]

...

==================== Yhteenveto =====================

Kaikki kuviot ja vihjeet :: 7

> Korkea riski: 0

> Keskiriski :: 0

> Matala riski :: 2

> Vihjeitä: 5

Sqlcheck kuuluu Apache License 2.0: n piiriin. Projektissa on viisi avustajaa, 187 sitoutumista ja 1,4 tuhatta tähteä.

Orkesterinjohtaja

Orchestrator on korkean käytettävyyden ja replikaation hallinnan työkalu. Se tarjoaa mahdollisuuden löytää MySQL-ympäristön replikointitopologia indeksoimalla ketjua ylös ja alas tunnistamaan isännät ja orjat. Sitä voidaan käyttää myös replikointitopologian muokkaamiseen graafisen käyttöliittymän kautta, mikä tarjoaa vetämällä ja pudottamalla -käyttöliittymän orjan mainostamiseksi isännälle. Tämä on erittäin turvallinen toiminta. Itse asiassa Orchestrator hylkää kaikki laittomat toimet, jotta se ei häiritse järjestelmääsi.

Lopuksi, Orchestrator voi tukea palautumista, kun solmut kärsivät epäonnistumisista, koska se käyttää tilakäsitystä älykkään oikean palautustavan valitsemiseksi ja sopivan pääkampanjaprosessin valitsemiseksi.

Orchestrator on toinen työkalu, jonka Shlomi Noach tarjoaa GitHubissa. Se kuuluu Apache License 2.0: n piiriin. Orchestratorilla on 34 kirjoittajaa, 2780 sitoutumista ja 900 tähteä tämän kirjoituksen aikaan.

GitHub

Pidä levyt pyörimässä

Tämän kappaleen alussa puhuin siitä, että MySQL-järjestelmänvalvojan rooli on kuin levyn kiekko. Joskus järjestelmänvalvoja voi hyötyä avuliaan katsojan huudosta, kun asiat alkavat heilua ja tarvitsevat huomiota. Perconan seuranta ja hallinta (PMM) ryhtyy huutamaan, korostamaan alueita, jotka tarvitsevat huomiota, ja auttamaan tietokannan järjestelmänvalvojia tunnistamaan ja ratkaisemaan tietokantaan liittyvät ongelmat.

PMM sisältää useita rodun parhaita avoimen lähdekoodin työkaluja, mukaan lukien Orchestrator, kattavan tietokannan seuranta- ja hallintatoiminnon tarjoamiseksi. Sen graafinen esitys tarjoaa helposti omaksuvia visuaalisia vihjeitä tietokantapalvelimien tilaan ajan myötä ja tukee MySQL-, MariaDB- ja MongoDB-palvelimia. Katso julkinen esittely!

Aivan kuten viisi tärkeintä työkalua ja kuten kaikki Perconan ohjelmistot, PMM on täysin ilmainen ja avoimen lähdekoodin ohjelmisto, jonka voi ladata Perconan verkkosivustolta tai GitHubista.

Jokainen kuvaamistani työkaluista käsittelee eri näkökohtia MySQL-järjestelmänvalvojan roolissa. Ne osallistuvat tietokantojen hallintatyökalujen arsenaaliin ja antavat sinun hyödyntää näiden suosittujen projektien osallistujien kokemuksia ja taitoja. Ne ovat ilmaisia ​​ja avoimen lähdekoodin ja ne voidaan tarvittaessa mukauttaa oman ympäristön tarpeisiin, tai voit käyttää niitä ilman muutoksia. Jos et ole vielä tutustunut näihin helmiin, suosittelen, että tutkit tarkemmin, tarjoavatko ne sinulle etuja nykyisiin menetelmiin ja työkaluihin verrattuna.

Michael Coburn toimii tuotepäällikkönä Perconassa, jossa hän vastaa Perconan seurannasta ja hallinnasta. Coburn, jolla on perusta järjestelmähallinnossa, nauttii työskentelystä SAN-tekniikoiden ja korkean käytettävyyden ratkaisujen kanssa.

New Tech Forum tarjoaa mahdollisuuden tutkia ja keskustella kehittyvistä yritysteknologioista ennennäkemättömällä syvyydellä ja laajuudella. Valinta on subjektiivinen, perustuu valitsemiemme tekniikoihin, joiden uskomme olevan tärkeitä ja kiinnostavia lukijoille. ei hyväksy markkinointivakuuksia julkaisua varten ja pidättää oikeuden muokata kaikkea lähetettyä sisältöä. Lähetä kaikki tiedustelut osoitteeseen[email protected].

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