Programovanie

Top 5 nástrojov s otvoreným zdrojom pre správcov MySQL

Michael Coburn je produktový manažér v spoločnosti Percona.

Pre správcov databáz (DBA) môže byť udržiavanie databáz s maximálnym výkonom trochu ako kolovrátok: Vyžaduje si to svižnosť, koncentráciu, rýchle reakcie, chladnú hlavu a občasné volanie od ochotného diváka. Databázy sú ústredné pre úspešné fungovanie takmer každej aplikácie. Pretože správcovia databáz sú zodpovední za údaje organizácie, je nevyhnutné nájsť spoľahlivé nástroje, ktoré im pomôžu zjednodušiť proces správy databázy a uľahčiť každodenné úlohy údržby. DBA potrebujú dobré nástroje, aby sa ich systémy mohli hladko otáčať.

Aké sú osvedčené nástroje pre správcov MySQL? Tu zdieľam svojich päť najlepších nástrojov s otvoreným zdrojom pre správcov MySQL a diskutujem o ich hodnote pri podpore každodenných úloh správy MySQL. Pre každú z nich som uviedol odkaz na úložisko GitHub a uviedol som počet hviezd GitHub v čase písania tohto článku.

Mycli

Projekt Mycli poskytuje automatické dokončovanie príkazového riadku MySQL a zvýrazňovanie syntaxe. Je to jeden z najpopulárnejších nástrojov MySQL pre správcov.

Bezpečnostné obmedzenia, ako sú skokoví hostitelia a dvojfaktorová autentifikácia, ponechávajú mnohým databázovým serverom MySQL prístup k ich systémom iba z príkazového riadku. Za takýchto okolností nie sú možné milované nástroje grafického používateľského rozhrania, ako sú MySQL Workbench, Monyog a ďalšie.

Na príkazovom riadku sa väčšina času strávi v terminálnom svete svetlo-čierna. Jednou z najlepších vecí na Mycli je teda bohatosť zvýraznenia syntaxe. To vám napríklad umožňuje vizuálne oddeliť funkcie a operátory od reťazcov dotazov v KDE doložky. Pre krátky jednoriadkový dopyt to nemusí byť až taký veľký problém, ale pri práci s dotazmi, ktoré vykonávajú, sa mení hra. PRIPOJTE SA operácie na viac ako niekoľkých stoloch. Robím to PRIPOJTE SA pomocou indexovaných stĺpcov? Filtrujem pomocou popredných zástupných znakov v mojom KDE doložky? Aplikácia Mycli podporuje viacriadkové dotazy a zvýrazňovanie syntaxe, čo znamená, že sa môžete nachádzať v sekciách, ktoré sú najdôležitejšie pri kontrole alebo optimalizácii dotazov. Môžete si vybrať z niekoľkých farebných schém zvýrazňujúcich syntax alebo si vytvoriť vlastnú.

Druhou zabijáckou funkciou Mycli je inteligentné dokončenie. Toto vám umožní vybrať názvy tabuliek a stĺpcov zo zoznamu citlivého na kontext zadaním iba ich prvých pár znakov. Už nemusíte opustiť svoj aktuálny vstup ZOBRAZIŤ TVORBU TABUĽKU pretože ste zabudli názov požadovaného stĺpca v priečinku KDE klauzula!

Amjith Ramanujam

S Mmycli môžete alias obľúbené dotazy používať pomocou \ fs, napr. \ fs myAlias ​​myQuery. To je naozaj užitočné, pretože dotaz môžete potom spustiť pomocou myAlias kedykoľvek je to potrebné.

Projekt Mycli využíva licenciu BSD 3. Existuje 44 prispievateľov, 1,2 tis. Záväzkov a 5 tis. Hviezdičiek.

Gh-ost

Ak ste ako 99 percent MySQL DBA čelili implementácii zmeny tabuľky MySQL a obávali sa dopadu na produkciu, mali by ste zvážiť Gh-ost (GitHub Online Schema Migration). Gh-ost poskytuje zmeny schémy MySQL bez blokovania zápisov, bez použitia spúšťačov a so schopnosťou pozastaviť a obnoviť migráciu!

Prečo je to také dôležité? Od MySQL 5.6 dodávané s novým ALTER TABUĽKA ... ALGORITM = MIESTA Vďaka funkcii DDL (Data Definition Language) bolo možné upravovať tabuľku bez blokovania zápisov pre bežné operácie, ako je pridanie indexu (B-strom). Existuje však niekoľko podmienok, kedy sú blokované zápisy (vyhlásenia DML), najmä pridanie a FULLTEXT index, šifrovanie tabuľkového priestoru a konverzia typu stĺpca.

Ďalšie populárne nástroje na zmenu schémy online, ako je napríklad zmena schémy pt-online-Percona, fungujú implementáciou sady troch spúšťačov (VLOŽTE, AKTUALIZÁCIAa ODSTRÁNIŤ) na hlavnej jednotke, aby bola tabuľka tieňových kópií synchronizovaná so zmenami. Týmto sa zavádza malý výkonnostný trest kvôli zosilneniu zápisu, ale významnejšie to vyžaduje sedem prípadov zámkov metadát. Tieto efektívne pozastavia udalosti DML (Data Manipulation Language).

Pretože Gh-ost pracuje pomocou binárneho protokolu, nie je náchylný na nevýhody založené na spúšťači. Nakoniec je Gh-ost schopný efektívne obmedziť aktivitu na nulové udalosti, čo vám umožní na chvíľu pozastaviť migráciu schémy, ak sa váš server začne trápiť, a pokračovať, keď bublina aktivity bude pokračovať.

Ako teda Gh-ost funguje? V predvolenom nastavení sa Gh-ost pripája k replike (slave), identifikuje hlavný server a použije migráciu na hlavný server. Prijíma zmeny na replike zdrojovej tabuľky v binlog_format = ROW, analyzuje protokol a prevádza tieto príkazy na opätovné vykonanie v tieňovej tabuľke majstra. Sleduje počet riadkov na replike a identifikuje, kedy je čas na vykonanie atómového prepínania (prepínacie tabuľky).

GitHub

Gh-ost poskytuje alternatívny režim, v ktorom migráciu vykonávate priamo na nadradenom serveri (bez ohľadu na to, či má alebo nie je podriadený), prečítajte si binlog_format = RIADOK udalosti a potom ich znova použiť na tieňovú tabuľku.

K dispozícii je posledná možnosť spustenia migrácie iba na replike bez ovplyvnenia predlohy, takže môžete migráciu otestovať alebo inak overiť.

GitHub

Upozorňujeme, že ak má vaša schéma cudzie kľúče, Gh-ost nemusí fungovať čisto, pretože táto konfigurácia nie je podporovaná.

Všimnite si, že dub-online-alter-table bol predchodcom Gh-ost. Môžete si prečítať porovnanie medzi výkonmi Gh-ost a pt-online-schema-change od Petera Zaitseva, výkonného riaditeľa spoločnosti Percona, spolu s odpoveďou Shlomi Noacha, autora a správcu súboru nástrojov OAK, a Gh-ost.

Projekt Gh-ost využíva licenciu MIT. Má 29 prispievateľov, takmer 1 000 záväzkov a 3 000 hviezdičiek.

PhpMyAdmin

Jedným z najdlhšie prebiehajúcich a najvyzretejších projektov medzi nástrojmi MySQL je ctihodný nástroj PhpMyAdmin, ktorý sa používa na správu MySQL cez web. phpMyAdmin umožňuje DBA prehliadať a upravovať databázové objekty MySQL: databázy, tabuľky, zobrazenia, polia a indexy. Existujú možnosti, ako vykonať export údajov pomocou viac ako tuctu formátov, upraviť používateľov a oprávnenia MySQL a - môj obľúbený - vykonávať dotazy ad-hoc.

Nájdete tiež kartu Stav, ktorá dynamicky vykresľuje otázky, pripojenia / procesy a sieťový prenos pre danú inštanciu databázy, spolu s kartou Poradca, ktorá vám zobrazuje zoznam možných problémov s výkonom spolu s odporúčaniami, ako ich napraviť.

PhpMyAdmin používa licenciu GPLv2. Jedná sa o obrovský projekt s viac ako 800 prispievateľmi, úžasnými 112 000 záväzkami a 2,7 000 hviezdami. Online ukážka je k dispozícii na //demo.phpmyadmin.net/master-config/

Sqlcheck

Anti-vzory SQL môžu spomaliť dotazy, ale ich identifikácia a vyriešenie často vyžaduje skúsených DBA a vývojárov nahliadajúcich do kódu. Sqlcheck odráža snahy Joy Arulrajovej o kodifikáciu knihy „Bill Anti-Patterns: Avoid the Pitfalls of Database Programming“ (Bill Anti). Karwin identifikuje štyri kategórie anti-vzorov:

  1. Návrh logickej databázy
  2. Návrh fyzickej databázy
  3. Dopyt
  4. Vývoj aplikácií
Joy Arulraj

Program Sqlcheck je možné zamerať na rôzne úrovne rizika a kategorizovať ho ako nízke, stredné alebo vysoké riziko. To je užitočné, ak je váš zoznam anti-vzorov veľký, pretože môžete uprednostniť dotazy s najväčším dopadom na výkon. Všetko, čo musíte urobiť, je začať, je zhromaždiť zoznam vašich odlišných dotazov do súboru a potom ich odovzdať ako argument nástroju.

Použil som vzorku zhromaždenú z ukážkového prostredia PMM na vygenerovanie nasledujúceho výstupu:

[michael @ fedora ~] $ sqlcheck — názov súboru PMMDemoQueries.txt

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

| SQLCHECK |

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

> ÚROVEŇ RIZIKA :: VŠETKY PROTI VZORY

> NÁZOV SÚBORU SQL :: výstup

> REŽIM FARBY :: POVOLENÉ

> REŽIM VERBÓZY :: ZAKÁZANÉ

> ODDELOVAČ ::;

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

==================== Výsledky ===================

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

Príkaz SQL: vyberte table_schema, table_name, table_type, ifnull (engine, ‘none’) ako engine,

ifnull (verzia, „0“) ako verzia, ifnull (row_format, „none“) ako row_format,

ifnull (table_rows, ‘0’) ako table_rows, ifnull (data_length, ‘0’) ako data_length,

ifnull (index_length, „0“) ako index_length, ifnull (data_free, „0“) ako data_free,

ifnull (create_options, ‘none’) ako create_options z information_schema.tables

kde table_schema = ‘innodb_small‘;

[výstup]: (TIPY) NULL Použitie

[Zhodný výraz: null]

...

===================== Zhrnutie ====================

Všetky vzory a rady :: 7

> Vysoké riziko :: 0

> Stredné riziko :: 0

> Nízke riziko :: 2

> Rady :: 5

Sqlcheck je krytý licenciou Apache 2.0. Projekt má päť prispievateľov, 187 záväzkov a 1,4 tis. Hviezdičiek.

Orchestrátor

Orchestrator je nástroj na vysokú dostupnosť a správu replikácie. Poskytuje schopnosť objavovať replikačnú topológiu prostredia MySQL prehľadávaním hore a dole po reťazci s cieľom identifikácie masters a slave. Môže sa tiež použiť na refaktorovanie vašej topológie replikácie pomocou grafického používateľského rozhrania, ktoré poskytuje rozhranie drag-and-drop na podporu otroka nadriadenému. Toto je veľmi bezpečná operácia. Nástroj Orchestrator v skutočnosti odmieta akékoľvek nelegálne operácie, aby nedošlo k narušeniu vášho systému.

Nakoniec nástroj Orchestrator môže podporovať zotavenie, keď uzly utrpia zlyhanie, pretože pomocou koncepcie stavu inteligentne vyberá správnu metódu obnovy a rozhoduje o použití vhodného procesu hlavnej propagácie.

Orchestrator je ďalší nástroj poskytovaný Shlomi Noachom na GitHub. Je krytá licenciou Apache 2.0. Orchestrator má v čase písania tohto článku 34 prispievateľov, 2 780 záväzkov a 900 hviezd.

GitHub

Dosky sa stále točia

Na začiatku tohto dielu som hovoril o tom, že rola správcu MySQL je ako táčka na doštičky. Príležitostne môže správcovi prospieť výkrik ochotného diváka, keď sa veci začnú vlniť a vyžadujú si pozornosť. Percona Monitoring and Management (PMM) sa ujíma úlohy vykričania, upozorňuje na oblasti, ktoré si vyžadujú pozornosť, a pomáha správcom databáz identifikovať a vyriešiť problémy s databázou.

PMM obsahuje množstvo najlepších open source nástrojov vrátane Orchestrator, ktoré poskytujú komplexné vybavenie na monitorovanie a správu databáz. Jeho grafická prezentácia poskytuje ľahko prispôsobiteľné vizuálne informácie o stave vašich databázových serverov v priebehu času a podporuje servery MySQL, MariaDB a MongoDB. Vyskúšajte našu verejnú ukážku!

Rovnako ako mojich päť najlepších nástrojov a rovnako ako všetok softvér spoločnosti Percona, aj PMM je úplne bezplatný softvér s otvoreným zdrojovým kódom, ktorý je možné stiahnuť z webovej stránky Percona alebo z GitHubu.

Každý z nástrojov, ktoré som popísal, sa zaoberá iným aspektom roly správcu MySQL. Prispievajú do vášho arzenálu nástrojov na správu databáz a umožňujú vám preniknúť do skúseností a zručností prispievateľov do týchto populárnych projektov. Sú to bezplatné a otvorené zdroje a v prípade potreby ich možno prispôsobiť potrebám vášho vlastného prostredia, alebo ich môžete použiť bez úprav. Ak ste tieto drahokamy ešte neskúmali, odporúčam vám bližšie sa pozrieť, či vám oproti súčasným metódam a nástrojom ponúkajú výhody.

Michael Coburn pracuje ako produktový manažér v spoločnosti Percona, kde je zodpovedný za monitorovanie a správu spoločnosti Percona. Spoločnosť Coburn, ktorá má základy v správe systémov, rada pracuje s technológiami SAN a riešeniami vysokej dostupnosti.

Nové technologické fórum poskytuje miesto na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu[email protected].

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