Detectar, preparar e restaurar uma replicação Mysql inclinada
pl:Wykrywanie, przygotować i przywrócić przechylony replikacji Mysql
ja:検出し、準備し、傾斜の Mysql レプリケーションを復元
ar:كشف، وإعداد وإعادة تكرار الخلية مائلة
zh:检测、 准备和还原倾斜的 Mysql 复制
de:Erkennen, vorzubereiten und eine schräge Mysql-Replikation wiederherstellen
nl:Detecteren, het voorbereiden en het herstel van een gekantelde Mysql replicatie
it:Rilevare, preparare e ripristinare una replica di Mysql inclinata
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
Este artigo foi traduzido por um sistema de tradução automática. Você pode visualizar a fonte do artigo aqui.
No Debian 8
Você implementou um sistema de replicação de banco de dados Mysql através de uma configuração mestre /escravo. Quando ocorre um problema no servidor mestre, este é o servidor escravo (escravo ) Quem assume. No entanto é de referir que esta escala ocorreu.
Deteção
- Dependendo do seu nível de serviço, você pode ser um acompanhamento do funcionamento da replicação, é avisados pelo apoio em caso de alternância.
- Em caso de alternância no master para o servidor do servidor slave, o ip do último será automaticamente alterado para responder em vez do servidor mestre
- O volume do eslavo DB será mais importante e irá conter as últimas informações gravadas.
- Pelo comando sobre o BDD :
Você conectar o BDD :
MySQL -u votre_utilisateur -p sua_senha
Em seguida, verifique o status do servidor mestre :
mostrar a sintaxe do status de mestre \G
Prepare-se
Antes de executar os comandos que se seguem, planejar a operação ! Prefiro um intervalo de tempo ou solicitação de bancos de dados é dele mínimos. Certifique-se de seu BDD não é modificada pelo também colocar o seu site em manutenção
> No caso de escrita durante o procedimento, aqui estão as consequências :
- Replicar fora de sincronização
- Dados podem ser perdidos ou corrompidos
Evitar escrever
Para evitar a escrita de um banco de dados, ele deve implementar a somente leitura (read-only). Que terá o efeito de bloquear solicitações para gravar o DB.
Em SLAVE
TABELAS NIVELADAS COM BLOQUEIO DE LEITURA ; SET GLOBAL read_only = UM ;
Criar o despejo
Uma vez o escravo somente leitura, pode largar suas tabelas com segurança : Em SLAVE
MySQL dump --Skip-adicionar-fechaduras --Single-transação -u votre_utilisateur -p sua_senha --todos-bases de dados --ignore-table =User > /destination/de/depart/mon/backup.sql
Substituir obviamente /destination/de/mon/backup.sql por seu destino habitual de backup. Por convenção, a data no formato backupDDMMAAAA.sql lá para encontrar :)
Enviando o despejo
Na medida em que os servidores escravos e mestres são remotos, você passar o arquivo de despejo de escravo ao mestre. Existem várias maneiras de fazê-lo tem esta transferência de arquivo, mas aqui vamos discutir o uso de PCs que permite para fazer cópias usando o serviço SSH.
- login 1 : login ssh da máquina escravo
- login2 : login ssh da máquina mestre
- Servidor 1 : IP ou Hostname máquina escravo
- Servidor 2 : IP ou Hostname máquina mestre
- Caminho /Arquivo 1 : /destination/de/depart/de/mon/backup.sql
- Caminho /Arquivo 2 : /destination/darrivee/de/mon/backup.sql
SCP Login 1@Servidor 1:Caminho /Arquivo 1 Login2@Servidor 2:Caminho /Arquivo 2
Importar o despejo
Em seguida, importar los no mestre de banco de dados a fim de sincronizar o 2 BDD. No MASTER
mysql -u votre_utilisateur -p sua_senha < /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
Ativar a atualização automática de comentários