Introduzione
Nel cloud computing, la replica dei dati master-slave si riferisce alla memorizzazione delle stesse informazioni su più server. Un server controlla il gruppo e gli altri dispositivi gestiscono il lavoro all'interno dello stesso nodo.
La replica diventa necessaria:
- Quando un'azienda ha bisogno di un backup quotidiano regolare in grado di ripristinare il database MySQL principale in caso di malfunzionamento dello storage.
- Ovunque le informazioni debbano essere archiviate, esaminate e modificate da più persone, su più computer. Se un membro del gruppo identifica la necessità di una modifica, deve rivolgersi al master designato del nodo.
Questa guida ti guiderà attraverso come impostare la replica master-slave in MySQL.
Prerequisiti
- Un sistema basato su Linux, come CentOS
- Un account utente con sudo privilegi
- Un programma di installazione di pacchetti come yum o apt , generalmente incluso per impostazione predefinita
- L'IP privato del server cloud (per evitare addebiti per la larghezza di banda sull'IP pubblico durante la configurazione)
Passaggi per la configurazione della replica del database master-slave in MySQL
Yum (Yellowdog Updater, Modified) è lo strumento di gestione dei pacchetti per i sistemi Linux RedHat Package Manager. In .deb pacchetti, lo yum strumento viene generalmente sostituito con apt attrezzo. Pertanto, in un dato comando apt-get di solito può sostituire yum .
Ad esempio, un comando di installazione può essere yum install [package_name]
o apt-get install [package_name]
per lo stesso risultato. Questo articolo presuppone che tu stia utilizzando una distribuzione Linux basata su RPM. Quindi, yum
vengono utilizzati i comandi.
Il database MySQL principale viene eseguito in modalità di lettura-scrittura. Nel frattempo, il server slave viene eseguito in sola lettura. Ora, alla replica.
Passaggio 1:configurare il database MySQL per la replica
Usa il mysqldump
comando per eseguire un dump e un ripristino delle informazioni nel database slave. Questo comando scarica i dati in un file, li trasferisce e li ripristina sul nodo slave.
Fase 2:crea 2 server cloud separati
In questo passaggio, l'utente con privilegi deve accedere al controllo cloud. Con CentOS, questo è possibile tramite l'immagine di base di CentOS 6.
Crea due server cloud Linux con la RAM appropriata e assegna loro nomi distinti.
Fase 3:aggiorna tutti i pacchetti software alla versione corrente
Gli utenti e gli amministratori di sistema possono aggiornare tutti i pacchetti software su un sistema Linux basato su RPM con il comando seguente:
yum update
Fase 4:installa MySQL
Per i sistemi Linux basati su RedHat Package Manager, installa il pacchetto del server MySQL su entrambi i server cloud con il comando:
yum install mysql-server
Imposta il servizio in modo che venga eseguito ogni volta che il sistema si avvia con il comando:
chkconfig mysqld on
Fase 5:avvia MySQL
Ora, scopri se MySQL è stato installato correttamente. Se lo fosse, dovresti essere in grado di avviare il servizio con il comando:
service mysqld start
Passaggio 6:imposta la password di root del server MySQL
È una buona idea impostare una password utente amministrativa per MySQL. Per impostare la password, esegui lo script per un'installazione sicura che accompagna il pacchetto MySQL, rispondendo con Y a tutti i prompt Y/n.
Oppure, usa /usr/bin/mysqladmin -u root password
seguito da uno spazio e dalla tua nuova password; e /usr/bin/mysqladmin -u root -h web01 password
seguito da uno spazio e, ancora, dalla tua nuova password.
Passaggio 7:configurare il firewall per l'accesso al database
Applicazione della regola TCP Port 3306 aggiunge un criterio firewall che consente il traffico sulla porta 3306. Questa regola consente una corretta comunicazione tra i dispositivi.
Per salvare la configurazione del firewall, utilizzare il comando:
service iptables save
Fai attenzione ogni volta che apri le porte per assicurarti di evitare hack.
Fase 8:Configura il server per la replica
Ogni server slave richiede un modo per connettersi al server master. Per stabilire una connessione, sono necessari un nome utente e una password MySQL. Ciò richiede la configurazione di un account utente MySQL sul server master.
Si consiglia di creare un account dedicato per la replica. Per questa funzione, concedi a qualsiasi account il privilegio di replica slave. Puoi creare lo stesso account o account diversi per ogni slave. Puoi sempre trovare il nome utente e la password dell'account in testo normale nel repository principale.
Per configurare un nuovo account utente chiamato replica e consentirgli di connettersi a fini di replica da qualsiasi host su tuosito.com dominio, esegui questo comando sul server principale:
mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';
Passaggio 9:assicurati che i dati sui tuoi server corrispondano
Duplica i dati tramite il dump dal master al server slave.
Le tabelle di risciacquo devono essere impostate con un blocco di lettura. Il database del server principale non deve prendere tutte le nuove modifiche durante questo passaggio. Se sono presenti informazioni sul server master da coordinare con i server slave prima dell'avvio del processo di replica, eseguire le seguenti azioni:
- Interrompi l'elaborazione di qualsiasi comando sul server principale.
- Copiare il nome del file e le coordinate correnti per il server master all'interno del suo registro binario (vedere il passaggio 10, di seguito). Ciò sarà necessario in seguito al completamento della configurazione della replica.
- Prima di consentire al tuo server principale di continuare a seguire i comandi, scarica i suoi dati.
Esegui attentamente tutte queste azioni per assicurarti che il dump dei dati corrisponda ai dati correnti del server master. In caso contrario, i database slave non corrisponderanno o saranno danneggiati.
Fase 10:scatta un'istantanea del database principale
Mentre esegui la seguente azione, tieni presente che solo un'istantanea del database master è tutto ciò che serve per configurare più server slave.
Se devi ancora configurare server-id e avviare un registro binario sul server master, è necessario arrestare il server. Puoi fare uno snapshot dei database ora.
Porta i file di dati nella directory del server slave:
shell> tar xvf dbdump.tar
Se necessario, stabilisci la proprietà e le autorizzazioni per i file. Potrebbe essere necessario consentire l'accesso al server slave e la possibilità di apportare modifiche. Avvia lo slave con --skip-slave-start
per evitare di iniziare la replica.
Configura il tuo server slave con il nome host e le credenziali di accesso del server master. Utilizzare le coordinate di replica del server master per il database slave. Stai indirizzando lo slave al punto in cui inizia la replica, utilizzando il file di registro binario e la posizione.
Per un server master configurato, puoi utilizzare mysqldump
per scattare una foto.
Ora puoi aggiornare la configurazione dello slave. Ancora una volta, assicurati di avviare lo slave con --skip-slave-start
per evitare di iniziare la replica.
Importa il dump con il comando:
shell> mysql < fulldb.dump
Fase 11:inizia i thread slave
Per vedere subito gli aggiornamenti sul server slave usa:
mysql> START SLAVE;