Top 5 alata otvorenog koda za MySQL administratore

Michael Coburn voditelj je proizvoda u tvrtki Percona. 

Administratorima baza podataka (DBA) održavanje baze podataka s najboljim performansama može biti malo poput okretanja ploča: potrebna su okretnost, koncentracija, brze reakcije, hladna glava i povremeni poziv korisnog promatrača. Baze podataka su ključne za uspješan rad gotovo svake aplikacije. Kako su DBA odgovorni za podatke organizacije, neophodno je pronaći pouzdane alate koji im pomažu da pojednostave postupak upravljanja bazom podataka i olakšaju svakodnevne zadatke održavanja. DBA-i trebaju dobre alate kako bi se njihovi sustavi glatko vrtjeli.

Pa, koji su iskušani i pouzdani alati za MySQL administratore? Ovdje dijelim svojih pet najboljih alata otvorenog koda za MySQL administratore i raspravljam o njihovoj vrijednosti u podršci svakodnevnim MySQL administrativnim zadacima. Za svakog od njih dao sam vezu do spremišta GitHub i naveo broj GitHub zvijezda u vrijeme pisanja ovog članka.

Mycli

Projekt Mycli pruža MySQL automatsko dovršavanje naredbenog retka i isticanje sintakse. Jedan je od najpopularnijih MySQL alata za administratore. 

Sigurnosna ograničenja, poput skočnih hostova i dvofaktorske provjere autentičnosti, mnogim MySQL DBA-ima ostavljaju pristup njihovim sustavima samo putem naredbenog retka. U takvim okolnostima omiljeni GUI alati kao što su MySQL Workbench, Monyog i drugi nisu opcija.

Na naredbenom retku velik dio vremena provodi se u svijetlo-crnom terminalnom svijetu. Dakle, jedna od najboljih stvari o Mycliju je bogatstvo isticanja sintakse. To vam omogućuje, na primjer, vizualno odvajanje funkcija i operatora od nizova upita u WHEREklauzulama. Za kratki upit s jednim retkom to možda i nije tako velika stvar, ali postaje mjenjač igre kada radite s upitima koji izvode JOINoperacije na više od nekoliko tablica. Radim li JOINpomoću indeksiranih stupaca? Da li filtriram pomoću vodećih zamjenskih znakova u svojim WHEREklauzulama? Mycli podržava višeredne upite i isticanje sintakse, što znači da možete pregledavati odjeljke koji su najvažniji prilikom pregledavanja ili optimizacije upita. Možete birati između velikog broja shema boja za isticanje sintakse ili stvoriti vlastiti.

Druga ubojita značajka Myclija je pametno dovršavanje. To vam omogućuje odabir imena tablica i stupaca s popisa osjetljivog na kontekst unošenjem samo njihovih prvih nekoliko znakova. Nema više napuštanja vašeg trenutnog unosa za pokretanje, SHOW CREATE TABLE jer ste zaboravili naziv stupca koji želite u svojoj WHEREklauzuli!  

Amjith Ramanujam

Pomoću Mmyclija možete nadimak omiljenih upita koristiti \fs, npr \fs myAlias myQuery. Ovo je vrlo zgodno, jer možete izvršiti upit koristeći \f myAliaskad god je to potrebno.

Projekt Mycli koristi BSD 3 licencu. Postoje 44 suradnika, 1,2 tisuće obveza i 5 tisuća zvjezdica.

Duh

Ako ste poput 99 posto MySQL DBA-a suočili se s provedbom promjene MySQL tablice, bojeći se utjecaja na proizvodnju, tada biste trebali razmotriti Gh-ost (GitHub Online Schema Migration). Gh-ost pruža promjene sheme MySQL bez blokiranja upisa, bez korištenja okidača i uz mogućnost pauze i nastavka migracije! 

Zašto je ovo tako važno? Budući da se MySQL 5.6 isporučuje s novom ALTER TABLE ... ALGORITHM=INPLACEfunkcijom DDL (jezik definicije podataka), postalo je moguće mijenjati tablicu bez blokiranja upisa za uobičajene operacije kao što je dodavanje indeksa (B-stablo). Međutim, ostaje nekoliko uvjeta u kojima je blokiranje upisivanja (DML izraza), ponajviše dodavanje FULLTEXTindeksa, šifriranje prostora tablica i pretvorba tipa stupca. 

Ostale popularne online promjenu shema alata, kao što Percona je PT-online-sheme-promjena, rad provedbi niza od tri okidača ( INSERT, UPDATEi DELETE) na gospodara kako bi stol sjena kopiranja usklađene s promjenama. Ovo uvodi malu kaznu izvedbe zbog pojačanja pisanja, ali značajnije zahtijeva sedam slučajeva zaključavanja metapodataka. Ovi efekti učinkovito zaustavljaju DML (jezik za manipulaciju podacima). 

Budući da Gh-ost djeluje pomoću binarnog dnevnika, nije osjetljiv na nedostatke temeljene na okidaču. Napokon, Gh-ost je u stanju učinkovito zaustaviti aktivnost na nulu događaja, što vam omogućuje da nakratko zaustavite migraciju sheme ako se vaš poslužitelj počne boriti i nastavi kad se balon aktivnosti pomakne.

Pa kako Gh-ost djeluje? Prema zadanim postavkama, Gh-ost se povezuje s replikom (slave), identificira master i primjenjuje migraciju na master. Prima promjene na replici izvorne tablice u binlog_format = ROW, analizira dnevnik i pretvara ove izraze da bi se ponovno izvršili na matičnoj tablici sjena. Prati brojanje redova na replici i utvrđuje kada je vrijeme za izvedbu atomskog presijecanja (tablice izmjene). 

GitHub

Gh-ost pruža alternativni način u kojem izvršavate migraciju izravno na masteru (bez obzira ima li robove), čitate binlog_format=ROWdogađaje mastera , a zatim ih ponovno primjenjujete na tablicu sjena.

Dostupna je konačna opcija za pokretanje migracije samo na replici, bez utjecaja na master, tako da migraciju možete testirati ili na drugi način potvrditi.

GitHub

Imajte na umu da ako vaša shema ima strane ključeve, tada Gh-ost možda neće raditi čisto, jer ova konfiguracija nije podržana.

Imajte na umu da je hrast-online-alter-table prethodnik Gh-osta. Možete pročitati usporedbu između performansi Gh-ost i pt-online-schema-change Petera Zaitseva, izvršnog direktora Percone, zajedno s odgovorom Shlomi Noach, autora i održavatelja OAK-ovog alata i Gh-ost-a.

Projekt Gh-ost koristi licencu MIT. Ima 29 suradnika, gotovo 1 tisuću obveza i 3 tisuće zvijezda.

PhpMyAdmin

Jedan od najdugovječnijih i najzrelijih projekata među MySQL alatima je časni PhpMyAdmin alat koji se koristi za administraciju MySQL-a preko weba. phpMyAdmin omogućuje DBA-u da pregledava i mijenja MySQL objekte baze podataka: baze podataka, tablice, poglede, polja i indekse. Postoje mogućnosti izvođenja podataka pomoću više od desetak formata, modificiranja MySQL korisnika i privilegija i - mojih najdražih - izvršavanja ad-hoc upita.

Pronaći ćete i karticu Status koja dinamički crta pitanja, veze / procese i mrežni promet za vašu instancu baze podataka, zajedno s karticom Savjetnik koja vam prikazuje popis mogućih problema s izvedbom, zajedno s preporukama o tome kako ih riješiti.

PhpMyAdmin koristi licencu GPLv2. Ovo je ogroman projekt s više od 800 suradnika, nevjerojatnih 112 tisuća obveza i 2,7 tisuća zvjezdica. Internetski demo dostupan je na //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL anti-obrasci mogu usporiti upite, ali često trebaju iskusni DBA-ovi i programeri koji preusmjeravaju kôd da bi ih identificirali i riješili. Sqlcheck odražava napore Joy Arulraj da kodificira knjigu "SQL anti-obrasci: izbjegavanje zamki programiranja baza podataka" Billa Karwina. Karwin identificira četiri kategorije anti-šablona:

  1. Logički dizajn baze podataka
  2. Fizički dizajn baze podataka
  3. Upit
  4. Razvoj aplikacija
Radost Arulraj

Sqlcheck se može ciljati na različite razine rizika, kategoriziran kao nizak, srednji ili visok rizik. Ovo je korisno ako je vaš popis anti-obrazaca velik, jer upitima možete dati prednost s najvećim utjecajem na izvedbu. Sve što trebate učiniti za početak je prikupiti popis svojih različitih upita u datoteku, a zatim ih proslijediti kao argument alatu. 

Upotrijebio sam uzorak prikupljen iz demo okoline PMM kako bih generirao sljedeći izlaz:

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

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

| SQLCHECK |

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

> RAZINA RIZIKA :: SVI ANTI-UZORCI

> NAZIV SQL FILE :: izlaz

> NAČIN BOJE :: Omogućen

> NAČIN VERBOZE :: INVALIDIRAN

> DELIMITER ::;

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

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

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

SQL Izjava: odaberite shemu_tablice, ime_tablice, tip_tablice, ifnull (engine, 'none') kao engine,

ifnull (inačica, '0') kao verzija, ifnull (format_vrsta, 'nema') kao oblik_reda,

ifnull (table_rows, '0') kao_ vrhovi table, ifnull (data_length, '0') kao data_length,

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

ifnull (create_options, 'none') kao create_options iz information_schema.tables

gdje table_schema = 'innodb_small';

[izlaz]: (HINTS) NULL Upotreba

[Podudaranje izraza: null]

...

==================== Sažetak =====================

Svi uzorci i savjeti :: 7

> Veliki rizik :: 0

> Srednji rizik :: 0

> Mali rizik :: 2

> Savjeti :: 5

Sqlcheck je pokriven licencom Apache 2.0. Projekt ima pet suradnika, 187 obveza i 1,4 tisuće zvjezdica.

Orkestrator

Orchestrator je alat za upravljanje dostupnošću i replikacijom. Pruža mogućnost otkrivanja topologije replikacije MySQL okruženja puzanjem gore-dolje po lancu kako bi se identificirali glavni i robovi. Također se može koristiti za refaktoriranje vaše topologije replikacije putem grafičkog sučelja, pružajući povuci i ispusti sučelje za promicanje slave u master. Ovo je vrlo sigurna operacija. Zapravo Orchestrator odbija bilo kakve ilegalne radnje kako ne bi slomio vaš sustav. 

Konačno, Orchestrator može podržati oporavak kada čvorovi trpe kvarove, jer koristi koncept stanja da inteligentno odabere ispravnu metodu oporavka i odluči prikladan glavni postupak promocije koji će se koristiti.

Orchestrator je još jedan alat koji nudi Shlomi Noach na GitHubu. Obuhvaćen je licencom Apache 2.0. Orchestrator ima 34 suradnika, 2.780 obveza i 900 zvijezda u vrijeme pisanja ovog članka.

GitHub

Držeći ploče da se vrte

Na početku ovog djela govorio sam o tome da je uloga administratora MySQL-a slična ulozi okretača ploča. Povremeno bi administrator mogao imati koristi od vike korisnog promatrača kad se stvari počnu klimati i treba mu pažnja. Percona Monitoring and Management (PMM) preuzima posao uzvikivanja, ističući područja koja trebaju pažnju i pomažući administratorima baza podataka da prepoznaju i riješe probleme s bazama podataka.

PMM uključuje niz najboljih alata otvorenog koda, uključujući Orchestrator, koji pružaju sveobuhvatan nadzor i upravljanje bazama podataka. Njegova grafička prezentacija pruža lako asimilirane vizualne tragove o stanju vaših poslužitelja baza podataka tijekom vremena i podržava MySQL, MariaDB i MongoDB poslužitelje. Pogledajte naš javni demo!

Baš kao i mojih pet najboljih alata, kao i sav Perconin softver, PMM je potpuno besplatan i softver otvorenog koda koji se može preuzeti s web stranice Percona ili s GitHub-a.

Svaki od alata koje sam opisao odnosi se na drugačiji aspekt uloge MySQL administratora. Oni pridonose vašem arsenalu alata za upravljanje bazama podataka i omogućuju vam da iskoristite iskustva i vještine suradnika u ovim popularnim projektima. Oni su besplatni i otvorenog koda i po potrebi se mogu prilagoditi potrebama vašeg okruženja ili ih možete koristiti bez preinaka. Ako još niste istražili ove dragulje, preporučam vam da pažljivije pogledate da li vam nude prednosti u odnosu na vaše trenutne metode i alate.

-

Michael Coburn služi kao voditelj proizvoda u tvrtki Percona, gdje je odgovoran za nadzor i upravljanje tvrtkom Percona. S temeljima u administraciji sustava, Coburn uživa u radu sa SAN tehnologijama i rješenjima visoke dostupnosti.

New Tech Forum pruža mjesto za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na  [email protected] .