Programování

Top 5 open source nástrojů pro správce MySQL

Michael Coburn je produktový manažer ve společnosti Percona.

Pro správce databází (DBA) může být udržování provozu databází na špičkovém výkonu něco jako rotující talíře: Vyžaduje to hbitost, soustředění, rychlé reakce, chladnou hlavu a občasné volání od užitečného diváka. Databáze jsou ústředním bodem úspěšného provozu téměř každé aplikace. Protože DBA jsou zodpovědní za data organizace, je zásadní najít spolehlivé nástroje, které jim pomohou zefektivnit proces správy databáze a usnadnit každodenní úkoly údržby. Správci databází potřebují dobré nástroje, aby jejich systémy fungovaly hladce.

Jaké jsou vyzkoušené a důvěryhodné nástroje pro správce MySQL? Zde sdílím svých pět nejlepších nástrojů s otevřeným zdrojovým kódem pro správce MySQL a diskutuji o jejich hodnotě při podpoře každodenních úkolů správy MySQL. U každého z nich jsem poskytl odkaz na úložiště GitHub a uvedl počet hvězd GitHub v době psaní.

Mycli

Projekt Mycli poskytuje automatické dokončování příkazového řádku MySQL a zvýraznění syntaxe. Je to jeden z nejpopulárnějších nástrojů MySQL pro správce.

Omezení zabezpečení, jako jsou skokoví hostitelé a dvoufaktorové ověřování, ponechávají mnoha MySQL DBA přístup pouze k jejich systémům z příkazového řádku. Za takových okolností nejsou oblíbené nástroje grafického uživatelského rozhraní, jako je MySQL Workbench, Monyog a další, možné.

Většinu času na příkazovém řádku tráví svět terminálu light-on-black. Jednou z nejlepších věcí na Mycli je tedy bohatost zvýraznění syntaxe. To vám například umožňuje vizuálně oddělit funkce a operátory od řetězců dotazu KDE doložky. U krátkého jednořádkového dotazu to nemusí být až tak velký problém, ale při práci s dotazy, které provádějí, se stane měničem hry PŘIPOJIT operace na více než několika stolech. Dělám to PŘIPOJIT pomocí indexovaných sloupců? Filtruji pomocí předních zástupných znaků v mém KDE klauzule? Mycli podporuje víceřádkové dotazy a zvýrazňování syntaxe, což znamená, že se můžete při kontrole nebo optimalizaci dotazů dostat do sekcí, na kterých záleží nejvíce. Můžete si vybrat z řady barevných schémat zvýrazňujících syntaxi nebo si vytvořit vlastní.

Druhou zabijáckou funkcí Mycli je inteligentní dokončení. To vám umožní vybrat názvy tabulek a sloupců ze seznamu citlivého na kontext zadáním pouze jejich prvních několika znaků. Už žádné opouštění aktuálního vstupu pro spuštění ZOBRAZIT VYTVOŘIT TABULKU protože jste zapomněli název požadovaného sloupce ve vašem KDE doložka!

Amjith Ramanujam

S Mmycli můžete alias oblíbené dotazy používat \ fs, např. \ fs myAlias ​​myQuery. To je opravdu užitečné, protože dotaz pak můžete provést pomocí myAlias kdykoli je to potřeba.

Projekt Mycli používá licenci BSD 3. Existuje 44 přispěvatelů, 1,2 tis. Závazků a 5 tis. Hvězd.

Duch

Pokud jste jako 99 procent MySQL DBA čelili implementaci změny v tabulce MySQL a obávali se dopadu na produkci, měli byste zvážit Gh-ost (GitHub Online Schema Migration). Gh-ost poskytuje změny schématu MySQL bez blokování zápisů, bez použití spouštěčů a se schopností pozastavit a obnovit migraci!

Proč je to tak důležité? Vzhledem k tomu, MySQL 5.6 dodáván s novým ALTER TABULKA ... ALGORITM = INPLACE Díky funkci DDL (Data Definition Language) bylo možné upravit tabulku bez blokování zápisů pro běžné operace, jako je přidání indexu (B-strom). Zůstává však několik podmínek, kdy jsou blokovány zápisy (příkazy DML), zejména přidání a CELÝ TEXT index, šifrování tabulkového prostoru a převod typu sloupce.

Jiné oblíbené nástroje pro změnu schématu online, jako je změna schématu pt-online-Percona, fungují implementací sady tří spouštěčů (VLOŽIT, AKTUALIZACE, a VYMAZAT) na hlavní jednotce, aby byla tabulka stínových kopií synchronizována se změnami. To zavádí malý výkonnostní trest kvůli zesílení zápisu, ale mnohem důležitěji vyžaduje sedm instancí zámků metadat. Tyto efektivně zastaví události DML (Data Manipulation Language).

Vzhledem k tomu, že Gh-ost pracuje pomocí binárního protokolu, není náchylný k nevýhodám založeným na spouštěči. Nakonec je Gh-ost schopen efektivně omezit aktivitu na nulové události, což vám umožní na chvíli pozastavit migraci schématu, pokud se váš server začne potýkat, a pokračovat, když bublina aktivity pokračuje.

Jak tedy Gh-ost funguje? Ve výchozím nastavení se Gh-ost připojí k replice (slave), identifikuje hlavní a použije migraci na hlavní. Přijímá změny na replice zdrojové tabulky v binlog_format = ROW, analyzuje protokol a převádí tyto příkazy, aby byly znovu provedeny ve stínové tabulce mistra. Sleduje počty řádků na replice a identifikuje, kdy je čas provést atomový cutover (přepnout tabulky).

GitHub

Gh-ost poskytuje alternativní režim, ve kterém provádíte migraci přímo na hlavní (ať už má nebo není podřízená), přečíst si hlavní binlog_format = ŘÁDEK události a poté je znovu použít na tabulku stínů.

K dispozici je poslední možnost spuštění migrace pouze na replice bez dopadu na hlavní server, takže můžete migraci otestovat nebo jinak ověřit.

GitHub

Všimněte si, že pokud vaše schéma obsahuje cizí klíče, pak Gh-ost nemusí fungovat čistě, protože tato konfigurace není podporována.

Všimněte si, že dub-online-alter-table byl předchůdcem Gh-ost. Můžete si přečíst srovnání výkonu Gh-ost a pt-online-schema-change od Petera Zaitseva, generálního ředitele společnosti Percona, spolu s odpovědí Shlomi Noacha, autora a správce sady nástrojů OAK a Gh-ost.

Projekt Gh-ost používá licenci MIT. Má 29 přispěvatelů, téměř 1 tis. Závazků a 3 tis. Hvězd.

PhpMyAdmin

Jedním z nejdéle běžících a nejzralejších projektů mezi nástroji MySQL je ctihodný nástroj PhpMyAdmin používaný ke správě MySQL přes web. phpMyAdmin umožňuje DBA procházet a upravovat databázové objekty MySQL: databáze, tabulky, pohledy, pole a indexy. Existují možnosti, jak provést export dat pomocí více než tuctu formátů, upravit uživatele a oprávnění MySQL a - můj oblíbený - provádět dotazy ad-hoc.

Najdete také kartu Stav, která dynamicky vykresluje otázky, připojení / procesy a síťový provoz pro danou instanci databáze, spolu s kartou Poradce, která vám zobrazí seznam možných problémů s výkonem spolu s doporučeními, jak postupovat.

PhpMyAdmin používá licenci GPLv2. Jedná se o obrovský projekt s více než 800 přispěvateli, úžasnými závazky 112 tis. A 2,7 tis. Hvězd. Online ukázka je k dispozici na adrese //demo.phpmyadmin.net/master-config/

Sqlcheck

Anti-vzory SQL mohou zpomalit dotazy, ale jejich identifikace a vyřešení často vyžaduje zkušené DBA a vývojáře, kteří hledají kód. Sqlcheck odráží snahy Joy Arulrajové o kodifikaci knihy „Bill Anti-Patterns: Avoid the Pitfalls of Database Programming“ od Billa Karwina. Karwin identifikuje čtyři kategorie anti-vzorů:

  1. Návrh logické databáze
  2. Návrh fyzické databáze
  3. Dotaz
  4. Vývoj aplikací
Joy Arulraj

Sqlcheck může být zaměřen na různé úrovně rizika, kategorizován jako nízké, střední nebo vysoké riziko. To je užitečné, pokud je váš seznam anti-patternů velký, protože můžete upřednostnit dotazy s největším dopadem na výkon. Vše, co musíte udělat, je shromáždit seznam vašich odlišných dotazů do souboru a poté je předat jako argument nástroji.

Použil jsem vzorek shromážděný z prostředí PMM Demo ke generování následujícího výstupu:

[michael @ fedora ~] $ sqlcheck — název_souboru PMMDemoQueries.txt

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

| SQLCHECK |

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

> ÚROVEŇ RIZIKA :: VŠECHNY PROTI VZORKY

> NÁZEV SOUBORU SQL :: výstup

> REŽIM BARVY :: ZAPNUTO

> REŽIM VERBÓZY :: ZAKÁZÁNO

> ODDĚLOVAČ ::;

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

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

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

Prohlášení SQL: vyberte table_schema, table_name, table_type, ifnull (engine, ‘none’) jako engine,

ifnull (verze, „0“) jako verze, ifnull (řádek_formát, „žádný“) jako řádek_formát,

ifnull (table_rows, „0“) jako table_rows, ifnull (data_length, „0“) jako data_length,

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

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

kde table_schema = ‚innodb_small ';

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

[Odpovídající výraz: null]

...

===================== Souhrn ====================

Všechny anti-vzory a rady :: 7

> Vysoké riziko :: 0

> Střední riziko :: 0

> Nízké riziko :: 2

> Rady :: 5

Na Sqlcheck se vztahuje licence Apache 2.0. Projekt má pět přispěvatelů, 187 závazků a 1,4 tisíc hvězd.

Orchestrator

Orchestrator je nástroj pro vysokou dostupnost a správu replikace. Poskytuje schopnost objevit topologii replikace prostředí MySQL procházením nahoru a dolů po řetězci za účelem identifikace pánů a otroků. Lze jej také použít k refaktorování vaší topologie replikace pomocí grafického uživatelského rozhraní, což poskytuje rozhraní drag-and-drop k propagaci slave na master. Jedná se o velmi bezpečný provoz. Ve skutečnosti Orchestrator odmítá jakékoli nelegální operace, aby neporušil váš systém.

Nakonec Orchestrator může podporovat zotavení, když uzly trpí poruchami, protože používá koncept stavu k inteligentnímu výběru správné metody obnovy a k rozhodnutí o vhodném hlavním postupu propagace, který se má použít.

Orchestrator je další nástroj poskytovaný Shlomi Noachem na GitHubu. Je pokryta licencí Apache 2.0. Orchestrator má v době psaní tohoto článku 34 přispěvatelů, 2 780 závazků a 900 hvězd.

GitHub

Desky se točí

Na začátku tohoto dílu jsem hovořil o tom, že role administrátora MySQL je jako role talíře. Když se věci začnou kývat a vyžadují pozornost, může administrátorovi občas prospět výkřik užitečného diváka. Percona Monitoring and Management (PMM) se ujímá úlohy křičet, zdůrazňovat oblasti, které vyžadují pozornost, a pomoci správcům databází identifikovat a vyřešit problémy s databází.

PMM obsahuje řadu nejlepších open source nástrojů, včetně nástroje Orchestrator, které poskytují komplexní zařízení pro monitorování a správu databází. Jeho grafická prezentace poskytuje snadno přizpůsobitelné vizuální vodítka ke stavu vašich databázových serverů v čase a podporuje servery MySQL, MariaDB a MongoDB. Podívejte se na naše veřejné demo!

Stejně jako mých pět nejlepších nástrojů a stejně jako veškerý software společnosti Percona, je PMM zcela bezplatný a otevřený software, který lze stáhnout z webu společnosti Percona nebo z GitHubu.

Každý z popsaných nástrojů se zabývá jiným aspektem role správce MySQL. Přispívají do vašeho arzenálu nástrojů pro správu databází a umožňují vám využít zkušeností a dovedností přispěvatelů do těchto populárních projektů. Jsou to bezplatné a otevřené zdroje a v případě potřeby je lze přizpůsobit potřebám vašeho vlastního prostředí, nebo je můžete použít beze změny. Pokud jste tyto drahokamy ještě neprozkoumali, doporučuji vám se blíže podívat, zda vám nabízejí výhody oproti vašim současným metodám a nástrojům.

Michael Coburn slouží jako produktový manažer v Perconě, kde je zodpovědný za monitorování a správu Percony. Coburn má základ v administraci systémů a rád pracuje s technologiemi SAN a řešeními vysoké dostupnosti.

Nové technologické fórum poskytuje místo, kde můžete prozkoumat a diskutovat o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na adresu[email protected].

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