MySQL Cluster Tutorial

March 6

Il database MySQL consente di combinare più di un computer in un gruppo che agisce come un unico database MySQL. Ci sono minimi requisiti specifici hardware o software diversi da una grande quantità di RAM e MySQL 5.0 o superiore. Naturalmente, più e più veloci CPU migliorerà le prestazioni, se sono disponibili. I dati in tempo reale per il cluster saranno memorizzati completamente all'interno della memoria in una architettura shared-nothing. Il cluster MySQL deve essere eseguito su una propria sottorete perché la comunicazione tra i nodi non è crittografata, e in modo che il cluster può avere l'uso esclusivo della larghezza di banda.

Le basi

Il cluster MySQL è configurato in modo indipendente del server MySQL ed è stato progettato con nessun singolo punto di errore. Ogni componente deve avere la propria memoria e spazio su disco e lo storage condiviso non è né consigliato o supportato. Ogni computer del cluster avrà uno o più processi in esecuzione su di esso. Questi processi (chiamati nodi) includono un server MySQL, un nodo di dati, un server di gestione e programmi di accesso ai dati specializzate. Configurazione comporta la configurazione di ogni singolo nodo e la creazione di singoli collegamenti di comunicazione. Tutti i dati per il cluster nel suo complesso si trova in un file di configurazione gestito dal nodo di gestione.

Ogni computer che esegue un nodo di SQL deve avere un binario di MySQL installato su di esso. nodi di gestione di dati e non necessitano di un binario di MySQL, ma richiedono il demone server di gestione (ndb_mgmd) per il nodo di gestione o il demone nodo di dati (ndbd) per i nodi di dati. Si raccomanda di installare il client di gestione (ndb_mgm) sull'host server di gestione.

Il cluster utilizza il motore di memorizzazione NDBCLUSTER. NDBCLUSTER è una, ad alta disponibilità, motore di archiviazione dati in memoria persistente che può essere configurato con una gamma di opzioni di failover e bilanciamento del carico. Quando i dati vengono memorizzati nel motore di archiviazione NDBCLUSTER, le tabelle sono memorizzati nei nodi di dati. I tavoli sono quindi accessibili da tutti gli altri server MySQL nel cluster. I dati memorizzati in questo modo possono essere duplicati e il cluster possono gestire gli errori di nodi individuali con solo un piccolo numero di transazioni impattate dovuta alla perdita dello stato dell'operazione.

Creazione di un cluster

Scaricare i file binari per il server MySQL, il Cluster NDB - motore di storage, NDB Cluster - Storage Management Engine, NDB Cluster - motore di memorizzazione strumenti di base, NDB Cluster - motore di memorizzazione strumenti aggiuntivi. Tutto il software cluster deve avere lo stesso numero di versione.

Ogni nodo nodo di dati o SQL ha bisogno di un file "my.cnf" che fornisce una "ConnectString" che indica al server dove trovare il nodo di gestione, e una linea dicendo al server MySQL che consentono al motore di storage NDBCLUSTER. Il nodo di gestione ha bisogno di un file "config.ini" dicendogli quante repliche di mantenere, la quantità di memoria da allocare per i dati e gli indici su ciascun nodo di dati, dove trovare i nodi di dati, dove salvare i dati sui dischi su ogni nodo di dati e dove trovare i nodi SQL.

Ogni processo nodo del cluster deve essere avviato separatamente sull'host su cui risiede. Il nodo di gestione deve essere avviato per primo, poi i nodi dati vengono avviati, il passo finale è quello di iniziare i nodi SQL.

Per iniziare a digitare il comando del nodo di gestione:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Avviare i nodi di dati con il comando "ndbd" e utilizzare lo script di avvio fornito con i binari di MySQL per avviare i nodi SQL.

Testare la configurazione digitando il comando "ndb_mgm." Una volta che tutti i nodi siano stati avviati, si può lavorare con i database e gli oggetti del cluster MySQL.