I 5 migliori strumenti open source per gli amministratori MySQL

Michael Coburn è un product manager di Percona. 

Per gli amministratori di database (DBA), mantenere i database in esecuzione al massimo delle prestazioni può essere un po 'come far girare i piatti: richiede agilità, concentrazione, reazioni rapide, una testa fredda e una chiamata occasionale da uno spettatore disponibile. I database sono fondamentali per il corretto funzionamento di quasi tutte le applicazioni. Poiché i DBA sono responsabili dei dati di un'organizzazione, è essenziale trovare strumenti affidabili che li aiutino a semplificare il processo di gestione del database e ad agevolare le attività di manutenzione quotidiane. Gli amministratori di database hanno bisogno di buoni strumenti per far funzionare i loro sistemi senza problemi.

Quindi quali sono gli strumenti collaudati e affidabili per gli amministratori di MySQL? Qui condivido i miei primi cinque strumenti open source per gli amministratori di MySQL e discuto il loro valore nel supporto delle attività quotidiane di amministrazione di MySQL. Per ciascuno di essi, ho fornito un collegamento al repository GitHub e ho elencato il numero di stelle GitHub al momento della scrittura.

Mycli

Il progetto Mycli fornisce il completamento automatico della riga di comando MySQL e l'evidenziazione della sintassi. È uno degli strumenti MySQL più popolari per gli amministratori. 

Restrizioni di sicurezza come jump host e autenticazione a due fattori lasciano a molti amministratori di database MySQL l'accesso ai propri sistemi solo dalla riga di comando. In tali circostanze, gli strumenti GUI amati come MySQL Workbench, Monyog e altri non sono un'opzione.

Alla riga di comando, la maggior parte del tempo viene trascorsa in un mondo terminale in luce su nero. Quindi una delle cose migliori di Mycli è la ricchezza della sua evidenziazione della sintassi. Ciò consente, ad esempio, di separare visivamente funzioni e operatori dalle stringhe di query nelle WHEREclausole. Per una breve query su una sola riga questo potrebbe non essere un grosso problema, ma diventa un punto di svolta quando lavori con query che eseguono JOINoperazioni su più di un paio di tabelle. Sto JOINusando le colonne indicizzate? Sto filtrando utilizzando i caratteri jolly iniziali nelle mie WHEREclausole? Mycli supporta le query su più righe e l'evidenziazione della sintassi, il che significa che puoi concentrarti sulle sezioni più importanti durante la revisione o l'ottimizzazione delle query. È possibile scegliere tra una serie di combinazioni di colori per evidenziare la sintassi o crearne di proprie.

L'altra caratteristica killer di Mycli è il completamento intelligente. Ciò consente di selezionare i nomi di tabelle e colonne da un elenco sensibile al contesto inserendo solo i primi caratteri. Non abbandonare più l'input corrente per l'esecuzione SHOW CREATE TABLE perché hai dimenticato il nome della colonna che desideri nella tua WHEREclausola!  

Amjith Ramanujam

Con Mmycli, puoi creare alias query preferite utilizzando \fs, ad es \fs myAlias myQuery. Questo è davvero utile, poiché puoi quindi eseguire la query utilizzando \f myAliasogni volta che è necessario.

Il progetto Mycli utilizza la licenza BSD 3. Ci sono 44 collaboratori, 1.2k commit e 5k stelle.

Fantasma

Se come il 99 percento degli amministratori di database MySQL hai dovuto affrontare l'implementazione di una modifica a una tabella MySQL temendo l'impatto sulla produzione, dovresti considerare Gh-ost (GitHub Online Schema Migration). Gh-ost fornisce modifiche allo schema MySQL senza bloccare le scritture, senza utilizzare trigger e con la possibilità di sospendere e riprendere la migrazione! 

Perché è così importante? Poiché MySQL 5.6 è stato fornito con la nuova funzionalità ALTER TABLE ... ALGORITHM=INPLACEDDL (Data Definition Language), è diventato possibile modificare una tabella senza bloccare le scritture per operazioni comuni come l'aggiunta di un indice (B-tree). Tuttavia, rimangono alcune condizioni in cui le scritture (istruzioni DML) sono bloccate, in particolare l'aggiunta di un FULLTEXTindice, la crittografia del tablespace e la conversione di un tipo di colonna. 

Altri strumenti di modifica dello schema in linea popolari, come ad esempio pt-online-schema-cambiamento di Percona, il lavoro mediante l'attuazione di una serie di tre trigger ( INSERT, UPDATE, e DELETE) sul master per mantenere una tabella copia shadow in sincronia con i cambiamenti. Ciò introduce una piccola penalizzazione delle prestazioni dovuta all'amplificazione della scrittura, ma in modo più significativo richiede sette istanze di blocchi dei metadati. Questi bloccano efficacemente gli eventi DML (Data Manipulation Language). 

Poiché Gh-ost opera utilizzando il registro binario, non è suscettibile agli inconvenienti basati sul trigger. Infine Gh-ost è in grado di limitare efficacemente l'attività a zero eventi, consentendoti di sospendere la migrazione dello schema per un po 'se il tuo server inizia a lottare e riprendere quando la bolla di attività si sposta.

Allora come funziona Gh-ost? Per impostazione predefinita, Gh-ost si connette a una replica (slave), identifica il master e applica la migrazione sul master. Riceve le modifiche su una replica alla tabella di origine in binlog_format = ROW, analizza il registro e converte queste istruzioni per essere rieseguite sulla tabella shadow del master. Tiene traccia dei conteggi delle righe sulla replica e identifica quando è il momento di eseguire un cutover atomico (cambia tabella). 

GitHub

Gh-ost fornisce una modalità alternativa in cui si esegue la migrazione direttamente sul master (indipendentemente dal fatto che abbia o meno slave), rileggere gli binlog_format=ROWeventi del master e quindi riapplicarli alla shadow table.

Un'ultima opzione è disponibile per eseguire la migrazione solo sulla replica senza influire sul master, in modo da poter testare o convalidare in altro modo la migrazione.

GitHub

Nota che se il tuo schema ha chiavi esterne, Gh-ost potrebbe non funzionare in modo pulito, poiché questa configurazione non è supportata.

Si noti che oak-online-alter-table è stato il predecessore di Gh-ost. Puoi leggere un confronto tra le prestazioni di Gh-ost e pt-online-modifica dello schema di Peter Zaitsev, CEO di Percona, insieme a una risposta di Shlomi Noach, l'autore e manutentore del toolkit OAK e di Gh-ost.

Il progetto Gh-ost utilizza la licenza MIT. Ha 29 collaboratori, quasi 1k commit e 3k stelle.

PhpMyAdmin

Uno dei progetti più longevi e maturi tra gli strumenti MySQL è il venerabile strumento PhpMyAdmin utilizzato per amministrare MySQL sul web. phpMyAdmin consente al DBA di esplorare e modificare gli oggetti del database MySQL: database, tabelle, viste, campi e indici. Ci sono opzioni per eseguire l'esportazione dei dati utilizzando più di una dozzina di formati, modificare utenti e privilegi MySQL e - il mio preferito - eseguire query ad-hoc.

Troverai anche una scheda Stato che traccia dinamicamente domande, connessioni / processi e traffico di rete per la tua specifica istanza di database, insieme a una scheda Advisor che mostra un elenco di possibili problemi di prestazioni insieme a consigli su come rimediare.

PhpMyAdmin utilizza la licenza GPLv2. Questo è un enorme progetto con più di 800 collaboratori, un incredibile 112k commit e 2,7k stelle. Una demo online è disponibile su //demo.phpmyadmin.net/master-config/

Sqlcheck

Gli anti-pattern SQL possono rallentare le query, ma spesso sono necessari amministratori di database esperti e sviluppatori che esaminano attentamente il codice per identificarli e risolverli. Sqlcheck riflette gli sforzi di Joy Arulraj per codificare il libro "SQL Anti-pattern: evitare le trappole della programmazione di database" di Bill Karwin. Karwin identifica quattro categorie di anti-pattern:

  1. Progettazione di database logici
  2. Progettazione di database fisici
  3. Query
  4. Sviluppo di applicazioni
Joy Arulraj

Sqlcheck può essere mirato a diversi livelli di rischio, classificati come rischio basso, medio o alto. Questo è utile se il tuo elenco di anti-pattern è ampio, poiché puoi dare la priorità alle query con il maggiore impatto sulle prestazioni. Tutto quello che devi fare per iniziare è raccogliere un elenco delle tue query distinte in un file e quindi passarle come argomento allo strumento. 

Ho utilizzato un campione raccolto dall'ambiente Demo PMM per generare il seguente output:

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

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

| SQLCHECK |

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

> LIVELLO DI RISCHIO :: TUTTI GLI ANTI-MODELLI

> NOME FILE SQL :: output

> MODO COLORE: ABILITATO

> MODALITÀ VERBOSE: DISABILITATA

> DELIMITER ::;

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

==================== Risultati ===================

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

Istruzione SQL: seleziona table_schema, table_name, table_type, ifnull (engine, 'none') as engine,

ifnull (version, '0') as version, ifnull (row_format, 'none') as row_format,

ifnull (table_rows, '0') come table_rows, ifnull (data_length, '0') come data_length,

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

ifnull (create_options, 'none') come create_options da information_schema.tables

dove table_schema = 'innodb_small';

[output]: (SUGGERIMENTI) Utilizzo NULL

[Espressione corrispondente: null]

...

==================== Riepilogo ===================

Tutti gli anti-pattern e i suggerimenti :: 7

> Alto rischio :: 0

> Rischio medio :: 0

> Basso rischio :: 2

> Suggerimenti :: 5

Sqlcheck è coperto dalla licenza Apache 2.0. Il progetto ha cinque contributori, 187 commit e 1,4k stelle.

Orchestratore

Orchestrator è uno strumento di gestione della replica e della disponibilità elevata. Fornisce la capacità di scoprire la topologia di replica di un ambiente MySQL eseguendo la scansione su e giù per la catena per identificare master e slave. Può anche essere usato per refactoring della topologia di replica tramite la GUI, fornendo un'interfaccia drag-and-drop per promuovere uno slave a master. Questa è un'operazione molto sicura. Infatti Orchestrator rifiuta qualsiasi operazione illegale per non interrompere il tuo sistema. 

Infine, Orchestrator può supportare il ripristino quando i nodi subiscono errori, poiché utilizza il concetto di stato per scegliere in modo intelligente il metodo di ripristino corretto e per decidere il processo di promozione principale appropriato da utilizzare.

Orchestrator è un altro strumento fornito da Shlomi Noach su GitHub. È coperto dalla licenza Apache 2.0. Al momento della stesura di questo documento, Orchestrator ha 34 collaboratori, 2.780 commit e 900 stelle.

GitHub

Mantenere i piatti in rotazione

All'inizio di questo pezzo, ho parlato del ruolo dell'amministratore di MySQL come quello di un filatore di piastre. Di tanto in tanto, l'amministratore potrebbe trarre vantaggio da un grido di uno spettatore disponibile quando le cose iniziano a vacillare e richiedono attenzione. Percona Monitoring and Management (PMM) si assume il compito di gridare, evidenziare le aree che richiedono attenzione e aiutare gli amministratori di database a identificare e risolvere i problemi del database.

PMM incorpora una serie di strumenti open source di prim'ordine, tra cui Orchestrator, per fornire una funzionalità completa di monitoraggio e gestione del database. La sua presentazione grafica fornisce indizi visivi facilmente assimilabili sullo stato dei server di database nel tempo e supporta i server MySQL, MariaDB e MongoDB. Dai un'occhiata alla nostra demo pubblica!

Proprio come i miei primi cinque strumenti e come tutto il software di Percona, PMM è un software completamente gratuito e open source che può essere scaricato dal sito Web di Percona o da GitHub.

Ciascuno degli strumenti che ho descritto affronta un aspetto diverso del ruolo dell'amministratore di MySQL. Contribuiscono al tuo arsenale di strumenti di gestione del database e ti consentono di attingere all'esperienza e alle competenze dei contributori a questi progetti popolari. Sono gratuiti e open source e possono essere adattati alle esigenze del proprio ambiente, se necessario, oppure è possibile utilizzarli senza modifiche. Se non hai ancora esplorato queste gemme, ti consiglio di dare un'occhiata più da vicino per vedere se ti offrono vantaggi rispetto ai tuoi metodi e strumenti attuali.

-

Michael Coburn ricopre il ruolo di product manager presso Percona, dove è responsabile del monitoraggio e della gestione di Percona. Con una base nell'amministrazione dei sistemi, Coburn ama lavorare con le tecnologie SAN e le soluzioni ad alta disponibilità.

Il New Tech Forum offre un luogo per esplorare e discutere la tecnologia aziendale emergente in profondità e ampiezza senza precedenti. La selezione è soggettiva, in base alla nostra scelta delle tecnologie che riteniamo importanti e di maggiore interesse per i lettori. non accetta materiale di marketing per la pubblicazione e si riserva il diritto di modificare tutti i contenuti forniti. Invia tutte le richieste a  [email protected] .