Base de Conhecimento

Replicação completa Master-Slave MySQL/MariaDB imprimir

  • 0

No servidor MySQL-1 (O que já estiver me produção) faça:

  1.  Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
  2. Altere as linhas de:
/etc/mysql/my.cnf
bind-addres = 127.0.0.1
...
#server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log

Para

/etc/mysql/my.cnf
bind-addres = 0.0.0.0                       #Ou adicione o IP do seu segundo servidor Master
...
expire_logs_days = 5                        #Dias de retenção do log
server-id = 1                               #Apenas descomente
slave_compressed_protocol                   #Protocolo de compressão
binlog_format = row
log-bin = /var/log/mysql/mysql-bin.log      #Apenas Descomente

 

  1.  Reinicie o servidor;
  2. Entre no mysql (mysql –u root –p)
    1. Crie um usuário de replica com GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’ IDENTIFIED BY ‘repl’;
    2. Saia do mysql (\q);
    3. Crie um backup complete do DB com mysqldump –u root –p --all-databases --master-data > dump.sql. Este comando irá bloquear a gravação nas tabelas até que o dump termine para evitar inconsistência.
    4. Envie para o segundo servidor master (MySQL-2) com scp dump.sql <IP_DO_SERVIDOR>:

 

No servidor mysql-2 (O novo servidor que se tornará master)

  1. Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
  2. Altere as linhas
/etc/mysql/my.cnf
bind-addres = 127.0.0.1
...
#server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log

Para

/etc/mysql/my.cnf
bind-addres = 0.0.0.0                       #Ou adicione o IP do seu segundo servidor Master
...
expire_logs_days = 5                        #Dias de retenção do log
server-id =2                                #Descomente e Altere o IP. É muito importe que ele tenha um id diferente do MySQL-1.
slave_compressed_protocol = 1               #Protocolo de compressão
binlog_format = row
log-bin = /var/log/mysql/mysql-bin.log      #Apenas Descomente
  1. Reinicie o servidor;
  2. Entre no mysql (mysql –u root –p)
    1. Aponte quem será o máster com o comando CHANGE MASTER TO MASTER_HOST=’192.168.0.1’, MASTER_USER=’repl’, MASTER_PASSWORD=’repl’;
    2. Substitua o IP do máster, usuário e senha pelas criadas no seu servidor máster.
    3. Pare o servidor slave com o comando: stop slave;
    4. Saia do mysql (\q);
    5. Importe o DUMP feito anteriormente com mysql –u root –p < dump.sql
    6. Entre no mysql (mysql –u root –p)
      1. Digite o comando start slave para iniciar a replicação.
      2. Pode-se verificar erros com o comando SHOW SLAVE STATUS\G
      3. Teste a replicação, crie uma tabela no MySQL-1 e veja se a tabela também será criada no MySQL-2.

Esta resposta lhe foi útil?
« Retornar