terça-feira, abril 29, 2014
Magento MySQL Master/Slave

Magento MySQL Master/Slave

Neste tutorial vamos explicar como configurar MySQL com replicação Master/Slave e configurar o Magento para escrever no Master e ler dados do Slave.

Primeiro temos que configurar o MySQL e para isso iremos precisar de acesso SSH root ou um usuário com sudo permitido.  Dois ou mais servidores Linux com MySQL.

Para este teste teremos o Master com o IP 10.1.1.1 e o Slave com IP 10.1.1.1.2.

Vamos aos passos:

  • Rode o seguinte comando tanto no servidor master como no servidor slave:
    • mkdir -p /var/lib/mysqllogs/; chown mysql:mysql /var/lib/mysqllogs/ -R
  • Edite seu arquivo /etc/my.cnf e adicione as seguintes linhas:
    • log-bin=/var/lib/mysqllogs/db1-binary-log
      expire-logs-days=5
      server-id=1
    • server-id can be other numbers as well.
  • Agora logado no MySQL, rode o comando (O IP vem logo após @ e o que será necessário alterar nome, IP e senha):
    • GRANT REPLICATION SLAVE ON *.* to 'replica'@'10.1.1.2' IDENTIFIED BY 'senhaaqui';
  • Vá no servidor slave e abra o /etc/my.cnf com a seguinte informação:
    • relay-log=/var/lib/mysqllogs/db2-relay-log
      relay-log-space-limit = 4G
      read-only=1
      server-id=2
  • Agora rode este comando nos dois servidores:
    • STOP SLAVE; RESET SLAVE;
    • CHANGE MASTER TO MASTER_HOST='10.1.1.2', MASTER_USER='replica', MASTER_PASSWORD='senhaaqui';
  • Precisamos duplicar os dados do banco de dados para os 2 servidores.
    • mysqldump -u root -p --all-databases --master-data | gzip -1 > ~/all.sql.gz
    • scp ~/all.sql.gz root@10.1.1.1:~/
  • Irá pedir uma senha, caso queira usar pode deixar ela aqui.
  • Estamos quase terminando e precisamos importar os dados e informações  para o server slave, use o comando à seguir para dar continuidade:
    • zcat ~/all.sql.gz | mysql -u root -p
  • Em casa servidor slave rode o comando no MySQL:
    • START SLAVE;
    • Verifique que os a replicacão está funcionando:SHOW SLAVE STATUS\G
      *************************** 1. row ***************************
      Slave_IO_State: Waiting for master to send event
      Master_Host: 10.1.1.1
      Master_User: replica
      Master_Port: 3306
      Connect_Retry: 60
      Master_Log_File: db4-bin-log.000297
      Read_Master_Log_Pos: 493573692
      Relay_Log_File: db3-relay-log.000658
      Relay_Log_Pos: 237
      Relay_Master_Log_File: db4-bin-log.000297
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      Replicate_Do_DB:
      Replicate_Ignore_DB:
      Replicate_Do_Table:
      Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
      Replicate_Wild_Ignore_Table:
      Last_Errno: 0
      Last_Error:
      Skip_Counter: 0
      Exec_Master_Log_Pos: 493573692
      Relay_Log_Space: 237
      Until_Condition: None
      Until_Log_File:
      Until_Log_Pos: 0
      Master_SSL_Allowed: No
      Master_SSL_CA_File:
      Master_SSL_CA_Path:
      Master_SSL_Cert:
      Master_SSL_Cipher:
      Master_SSL_Key:
      Seconds_Behind_Master: 0
  • Agora vamos verificar que a replicação está funcionando (rode os comandos abaixo no master para criar um banco de dados).
    • create database replication_test;
  • Agora em cada servidor slave vamos verificar se a tabela será criada:
    • show databases;
  • Se o banco de dados estiver lá é porque funcionou.
  • Vamos editar agora o Magento, abra o arquivo app /etc/local.xml e nele temos as confirgurações dos clientes.O arquivo vem com algo parecido:






  • 1

  • Este será para escrita de dados, para ter de lida somente vamos alterar o arquivo app/etc/local.xml
  • No aquivo app /etc/local.xml vamos adicionar o seguinte código para leitura somente:





    • pdo_mysql
      mysql4
      SET NAMES utf8
      1

Limpe os caches do Navegador e do seu PC e verifique se houve alguma alteração.

Caso tenha dúvida acesse forum.magentobr.com

6

Sobre Eric

Tudo começou como um hobby em 2001 quando precisei criar um site simples para um canal do IRC. Em 2007 foi a vez do Magento quando precisei criar um e-commerce para minha esposa. A partir dai resolvi mergulhar neste incrível sistema e hoje sou consultor e programador de algumas lojas utilizando o Magento. Natural de Salvador - BA, atualmente moro em Maryland - EUA.

Deixe uma resposta

O seu endereço de email não será publicado. Required fields are marked *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Scroll To Top