MariaDB
 sql >> Database >  >> RDS >> MariaDB

Cos'è MariaDB TX? Come gestire il nuovo fork MySQL di MariaDB!

Potresti aver sentito parlare di MariaDB TX e potresti esserti chiesto di cosa si tratta?

C'è una differenza tra esso e MariaDB Server 10.3?

In questo post del blog vorremmo darti una panoramica del MariaDB TX e di cosa si tratta.

In breve:MariaDB TX è un abbonamento in cui MariaDB combina più offerte creando un database transazionale completo.

Il database utilizzato in MariaDB TX è MariaDB Server 10.3, che include anche Galera Cluster per la replica sincrona multi-master. Per il livello proxy MariaDB TX utilizza MaxScale.

Concentriamoci un po' su queste due offerte principali, esaminandone le caratteristiche.

Server MariaDB 10.3


Si è evoluto in un fork completo di funzionalità, che implementa nuove funzionalità oltre a ciò che Oracle implementa a monte. MariaDB 10.3 viene fornito con un elenco di funzionalità incentrate sull'azienda. MariaDB Server 10.3 non è più un sostituto drop-in di MySQL.

Compatibilità Oracle

MariaDB 10.3 viene fornito con SQL_MODE=ORACLE, che migliora la compatibilità per la sintassi SQL utilizzata in MariaDB 10.3 con Oracle PL/SQL. Le seguenti funzionalità di compatibilità sono incluse in MariaDB TX:

  • Parametri della procedura memorizzata
  • Costrutto di stored procedure non ANSI
  • Sintassi del cursore
  • Sintassi del ciclo
  • Dichiarazione variabile
  • Ereditarietà del tipo di dati (%TYPE, %ROWTYPE)
  • Eccezioni stile PL/SQL
  • Sinonimi per i tipi SQL di base (VARCHAR2, NUMBER, ...)

Ciò consente una migrazione più semplice delle tue applicazioni dai database Oracle a MariaDB TX.

Fino all'80% del codice Oracle PL/SQL può ora essere eseguito su MariaDB senza la necessità di introdurre modifiche; questo ha un grave impatto sulla curva di apprendimento complessiva e riduce il tempo necessario per riscrivere il codice legacy da eseguire su MariaDB TX.

Un altro aspetto importante da tenere a mente, MariaDB TX viene fornito con un pacchetto di supporto e avrai accesso a consulenti che saranno in grado di condividere le migliori pratiche di migrazione con te o addirittura di aiutarti direttamente nel processo di pianificazione per rendere la transizione ancora meno problematica.

Miglioramenti in SQL

MariaDB TX ci offre anche miglioramenti nella sintassi SQL, incluse nuove funzionalità che dovrebbero essere molto utili per gli sviluppatori come le funzioni Window o le espressioni di tabelle comuni. Anche una sottoclausola temporale potrebbe essere molto utile in quanto consentono di accedere a più versioni di una determinata riga in base a un momento specifico.

Tutte le funzionalità sono elencate di seguito:

  • Sottoclausole temporali (ad es. AS OF)
  • Funzioni aggregate definite dall'utente
  • Funzioni aggregate di set ordinato
  • INTERSEZIO/ECCETTO
  • Costruttori di valori di tabella
  • Timeout blocco DDL/SELECT
  • Espressioni di tabelle comuni
  • Funzioni della finestra
  • Funzioni JSON

Motori di archiviazione esterni

Il motore predefinito per MariaDB è InnoDB, un motore di archiviazione transazionale a tutto tondo.

È adatto per la maggior parte dei carichi di lavoro e funziona perfettamente con il carico di lavoro OLTP (Online Transaction Processing). Tuttavia, non è l'unico motore di archiviazione disponibile in MariaDB TX. Puoi accedere al motore Spider, che può essere utilizzato per partizionare i tuoi dati su più istanze MariaDB mantenendo il supporto per le transazioni XA.

Un altro motore di archiviazione che puoi utilizzare è MyRocks, un motore ottimizzato per l'archiviazione e la riduzione dell'amplificazione della scrittura. Testato in battaglia su Facebook, basato su LSN, si adatta perfettamente all'archiviazione di grandi volumi di dati su storage SSD, riducendo i costi implementando una forte compressione e riducendo il numero di scritture richieste per un determinato carico di lavoro (e quindi riducendo al minimo l'usura dell'SSD ).

Galera Cluster

MariaDB TX ti offre un facile accesso al Galera Cluster, una replica multi-master virtualmente sincrona. Galera Cluster può essere utilizzato per progettare cluster WAN a disponibilità elevata.

Galera Cluster si basa sul protocollo quorum-aware, che garantisce che il partizionamento della rete non sia un problema e che il cervello diviso non dovrebbe più essere un problema. Galera Cluster fornisce mezzi per il provisioning automatico di nodi nuovi o non riusciti, riducendo l'impronta di gestione.

Caratteristiche operative

MariaDB TX fornisce anche alcune funzionalità relative alle attività operative. Instant ADD COLUMN aiuta a ridurre l'impatto di una delle modifiche allo schema più comuni. Le colonne invisibili aiutano a mantenere la compatibilità tra il vecchio e il nuovo codice. Gli indici su colonne virtuali aumenteranno le prestazioni.

Backup Maria

MariaDB TX implementa la crittografia dei dati inattivi che include la crittografia dei log binari. Per garantire che gli utenti di MariaDB TX possano beneficiare di backup senza blocco, è stato creato Mariabackup. È un fork migliorato di Xtrabackup, che non funzionava correttamente con le funzionalità di crittografia di MariaDB TX. Ora puoi goderti i tuoi backup fisici caldi con Mariabackup mentre i tuoi dati sono crittografati in modo sicuro.

MariaDB MaxScale

Oltre a MariaDB 10.3, MariaDB TX viene fornito con MaxScale 2.3, un proxy SQL che può essere utilizzato per creare ambienti ad alta disponibilità. Viene fornito con numerose funzionalità e vorremmo esaminarne le più importanti qui.

Failover automatico

MaxScale può essere utilizzato per tenere traccia dello stato di salute del nodo MariaDB principale e, in caso di errore, eseguire un failover rapido e automatico. Il failover automatizzato è fondamentale per creare una soluzione ad alta disponibilità in grado di riprendersi prontamente dall'errore.

Separazione lettura-scrittura

La suddivisione in lettura/scrittura è una funzionalità fondamentale per consentire il ridimensionamento in lettura. È sufficiente che l'applicazione si connetta a MaxScale e rileverà la topologia, determinerà quale MariaDB funge da master e quali da slave. Quindi indirizzerà il traffico di conseguenza. Le query SELECT verranno inviate agli slave, le scritture verranno inviate al master. Tutto avviene automaticamente, la topologia viene costantemente monitorata e, in caso di failover, il traffico verrà reindirizzato in base alla modifica.

Routing delle query trasparente

MaxScale, essendo il punto di ingresso del traffico in MariaDB TX, può essere utilizzato per eseguire una suddivisione in lettura-scrittura. A volte questo non è ancora abbastanza e sarebbe fantastico avere un modo per controllare dove deve essere inviata una determinata query. Questo è possibile in MaxScale:puoi abbinare le query usando espressioni regolari e quindi decidere se devono essere inviate al master o agli slave. Questo può aiutare in alcuni casi particolari in cui la query SELECT deve essere eseguita sul master a causa di problemi di lettura dopo scrittura o semplicemente perché deve avere la vista più aggiornata del set di dati.

Memorizzazione nella cache dei risultati della query

Per migliorare le prestazioni, la memorizzazione nella cache delle query è un must. La cache delle query disponibile in MariaDB semplicemente non funzionerà in ambienti altamente simultanei poiché impone la serializzazione delle query, riducendo notevolmente le prestazioni anche per carichi di lavoro di sola lettura. L'utilizzo di una soluzione esterna per la cache non è sempre fattibile:dopotutto ti ritroverai con l'ennesimo database da mantenere, proteggere e mantenere in salute. Potrebbe essere meglio utilizzare MaxScale come cache, supponendo che lo utilizzi già per altre funzionalità.

Blocco delle query

A volte i database soffrono di una query inefficiente, che crea un carico elevato sul sistema. Potrebbe essere che la riscrittura di quella query richieda troppo tempo (qualcuno dovrebbe riscriverla, testare la modifica sulla gestione temporanea e quindi distribuirla alla produzione), un tempo che non hai. MaxScale può aiutarti qui con funzionalità come il blocco delle query, che sostanzialmente ti consentono di impedire a una determinata query di colpire il database. Questa funzione può essere utilizzata anche per creare un firewall SQL:elimina tutte le query che corrispondono a schemi che puntano a SQL injection o ad altre attività potenzialmente pericolose e dannose.

Come puoi vedere, MariaDB TX viene fornito con un elenco di funzionalità e software progettati per collaborare e creare database scalabili e altamente disponibili per l'elaborazione dei dati transazionali.

Monitoraggio e gestione aziendale per MariaDB TX

ClusterControl supporta completamente MariaDB TX. Puoi facilmente distribuire sia MariaDB Server 10.3 che MaxScale 2.3. ClusterControl supporta le configurazioni di replica MariaDB e MariaDB Galera Cluster.

Finché disponi della connettività SSH dalla tua istanza ClusterControl ai nodi su cui desideri distribuire MariaDB TX, puoi farlo in un paio di clic.

Per prima cosa devi definire come ClusterControl raggiungerà i nodi MariaDB TX.

Quindi, scegli MariaDB come fornitore e scegli una delle versioni supportate. Passa la password di root di MariaDB.

Infine, decidere la topologia. È possibile distribuire MariaDB TX in una configurazione master - master, attiva - standby con slave aggiuntivi. La replica utilizzerà MariaDB GTID.

Per MariaDB Galera Cluster il primo passaggio è esattamente lo stesso, quindi devi solo scegliere MariaDB come fornitore, decidere la versione e definire i nodi nel MariaDB Galera Cluster:

Con i cluster distribuiti puoi utilizzare la potenza di ClusterControl per monitorare e gestire i cluster MariaDB TX.

Ad esempio, l'aggiunta di sistemi di bilanciamento del carico MaxScale è a pochi clic di distanza:

Una volta distribuito, puoi gestire il tuo MaxScale utilizzando ClusterControl:

Puoi anche ridimensionare il tuo cluster Galera aggiungendo nuovi nodi Galera o slave di replica asincroni. È possibile aggiungere slave o slave ritardati alle impostazioni di replica oppure eseguire modifiche alla topologia promuovendo uno slave a master e riattivando il resto dell'installazione. ClusterControl monitorerà il cluster e tenterà di ripristinare i nodi oi cluster non riusciti in caso di incidente. Per i backup, ClusterControl può aiutarti a definire una pianificazione di backup utilizzando sia mysqldump che Mariabackup in modo da poter beneficiare facilmente delle funzionalità di crittografia di MariaDB TX.

Per la parte di monitoraggio e trending, ClusterControl può essere utilizzato sia in modalità agentless:

Oppure può essere utilizzato insieme a Prometheus e agli agenti per fornire informazioni ancora migliori su ciò che sta accadendo nel cluster MariaDB TX.

Ci auguriamo che questo post introduttivo del blog ti abbia aiutato a capire cos'è MariaDB TX e come ClusterControl può aiutarti a gestirlo.