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_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:

magento-imagem-sql-01

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:

magento-imagem-sql-02

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

Caso tenha dúvida acesse forum.magentobr.com

2017-01-24T20:24:38+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x