Rilevare, preparare e ripristinare una replica di Mysql inclinata
de:Erkennen, vorzubereiten und eine schräge Mysql-Replikation wiederherstellen
nl:Detecteren, het voorbereiden en het herstel van een gekantelde Mysql replicatie
pt:Detectar, preparar e restaurar uma replicação Mysql inclinada
es:Detectar, preparar y restaurar una replicación Mysql inclinada
en:Detect, prepare and restore a tilted Mysql replication
fr:Détecter, préparer et rétablir une réplication Mysql basculée
Il presente articolo è stato tradotto tramite un software di traduzione automatica. È possibile visualizzare l'origine articolo qui.
Sotto Debian 8
È stato implementato un sistema di replica del database Mysql attraverso una configurazione master /schiavo. Quando si verifica un problema sul server master, questo è il server schiavo (slave) chi prende il sopravvento. Tuttavia si deve innanzitutto precisare che si è verificato questa scala.
Rilevamento
- A seconda del livello di servizio, si può essere un controllo del funzionamento della replica, si viene avvisati dal supporto in caso di attiva/disattiva.
- In caso di commutazione sul master al server server slave, l'ip di quest'ultimo verrà automaticamente modificato per rispondere invece il server master
- Il volume del DB slava sarà più importante e contiene le ultime informazioni registrate.
- Di comando su BDD :
Collegarsi a BDD :
MySQL -u votre_utilisateur -p your_password
Quindi verificare lo stato del server master :
Visualizza la sintassi master status \G
Preparare
Prima di eseguire i comandi che seguono, pianificare l'operazione ! Preferisco un timeslot o sollecitazione dei database è un suo minimi. Assicurati il tuo BDD è non è affatto modificato inserendo anche il tuo sito in manutenzione
> Nel caso di scrittura durante la procedura, qui sono le conseguenze :
- Replica fuori sincronia
- I dati possono essere persi o danneggiati
Impedire la scrittura
Per evitare la scrittura di un database, è necessario implementare la proprietà di sola lettura (sola lettura ). Che avrà l'effetto di bloccare le richieste di scrivere al DB.
Slave
TAVOLI A FILO CUNA BLOCCO DI LETTURA ; SET GLOBAL read_only = ON;
Creare il dump
Una volta, lo schiavo in sola lettura, è possibile scaricare le tabelle in modo sicuro : Slave
MySQL dump --Skip-aggiungere-serrature --singolo-transazione -u votre_utilisateur -p your_password --tutti i database --ignorare-tabella =MySQL. User > /destination/de/depart/mon/backup.sql
Sostituire ovviamente /destination/de/mon/backup.sql di destinazione di backup usuale. Per convenzione la data nel formato backupDDMMAAAA.sql ci al fine di trovare :)
Invio il dump
Nella misura in cui i server MASTER e SLAVE sono remoti, si passa il file DUMP di SLAVE a MASTER. Ci sono diversi modi per farlo è questo trasferimento di file, ma qui si discuterà l'uso dei PC che permette di fare copie utilizzando il servizio SSH.
- Login 1 : Login ssh macchina SLAVE
- login2 : login ssh macchina MASTER
- Server di 1 : IP o Hostname macchina SLAVE
- Server di 2 : IP o Hostname macchina MASTER
- Percorso /File 1 : /destination/de/depart/de/mon/backup.sql
- Percorso /File 2 : /destination/darrivee/de/mon/backup.sql
SCP Login 1@Server di 1:Percorso /File 1 Login2@Server di 2:Percorso /File 2
Importare il dump
Quindi importare nel Master database al fine di sincronizzare il 2 BDD. Il MASTER
mysql -u votre_utilisateur -p your_password < /destination/de/mon/backup.sql
Rétablir la réplication
Sur le serveur MASTER: Vous avez besoin d'informations provenant du serveur master, exécutez donc la commande:
echo "show master status\G" | mysql -u votre_utilisateur -p votre_mot_de_passe
Garder ces deux lignes de côté :
- File: mysql-bin.1X1X1X
- Position: 2X2X2X2X2
Sur SLAVE Actualisez les clauses MASTER_LOG_FILE et MASTER_LOG_POS par les informations de la commande précédente.
- MASTER_LOG_FILE étant File:
- MASTER_LOG_POS étant Position
stop slave; CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.1X1X1X', MASTER_LOG_POS=2X2X2X2X2;start slave;
Test et finalisation
Pour vérifier la mise en place de cette réplication utilisez sur le SLAVE:
echo "show slave status\G" | mysql -u votre_utilisateur -p votre_mot_de_passe
Vérifiez ces lignes :
- Slave_IO_Running sur Yes
- Slave_SQL_Running sur Yes
- Seconds_Behind_Master a 0
Si tout correspond la mise en place de la réplication s'est bien déroulée. Retirer la restriction lecture seule sur votre bdd SLAVE:
SET GLOBAL read_only = OFF;UNLOCK TABLES;
Vous pouvez redémarrer tous vos services utilisant les Bdd.
Vérifiez leur bonne exécution grâce a la commande suivante en remplaçant "votreservice" par celui concerné. exemple: votre serveur web apache : "apache2" votre SGBD Mysql : "mysql"
systemctl status "votreservice".service
Cette documentation a été crée a partir de la documentation interne et de la documentation officielle Mysql
Attivare l'aggiornamento automatico dei commenti