>_MySQL 5.6 – CentOS 6.5 x64 – Replication – Master to Master

Configurando o MySQL 5.6 com replicação Master to Master entre duas instâncias.

Vantagens em utilizar a replicação no MySQL.

  • Equilíbrio de carga: a replicação, geralmente não precisa de uma largura de banda muito intensiva, você pode inicia e parar conforme a sua vontade e o slave pode trabalhar distante do master.
  • Distribuição de dados: a replicação pode ajudar a distribuir as consultas de leitura através de diversos servidores, ou seja, o mesmo dado pode está armazenados em todos os servidores envolvidos da replicação.
  • Alta disponibilidade: se um servidor falhar tem outro servidor para suprir aquele servidor que falhou.

 

Como funciona a replicação?

O MySQL realiza a replicação em um simples processo de três fases, são elas:

  • O master registra alterações aos seus dados no seu log binário (estes registros são chamados de evento de log binário): antes de cada transação que atualiza dados no master, o mesmo registra as alterações no seu log binário, ou seja, o mysql escreve as transações no seu log binário e logo em seguida o master diz  as ferramentas de armazenamento para comitar as transações.
  • O slave copia os eventos de log binário do master no seu relay log (log de vigilância): o servidor slave, através de uma thread de I/O, abre uma conexão com o master e logo inicia o processo de esvaziamento de binlog. O esvaziamento de binlog consiste na leitura do evento a partir do log binário do master. A Thread de I/O escreve os eventos no relay log do slave.
  • O slave repete aos eventos no relay log: a thread lê e repete eventos a partir do relay log, dessa forma atualizando os dados do slave para combinarem com os do master.


C
enário

storage_1 (3)

Em ambos servidores será instalado o pacote wget.

# yum install wget

Após a instalação do pacote wget, o próximo passo será o download do repositório do MySQL Community em ambos os servidores.

# cd /opt
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

Após o download do repositório será executado o comando rpm -ivh. Este comando terá como função instalar o repositório MySQL Community. Execute este passo em ambos os servidores.

# rpm -ivh mysql-community-release-el6-5.noarch.rpm

Com o repositório já instalado, o próximo passo será a instalação do MySQL 5.6 em ambos os servidores.

# yum install mysql-server mysql-libs mysql mysql-devel  -y

A partir daqui cada comando deverá ser executado conforme a especificação.

Hostname: dados-1  (Servidor MySQL – 192.168.1.10)
Hostname: dados-2  (Servidor MySQL – 192.168.1.11)

dados-1

# vim /etc/my.cnf
# REPLICACAO
 log-bin                        =       mysql-bin
 server-id                      =       1
 sync_binlog                    =       1
 binlog_ignore_db               =       mysql
 auto-increment-increment       =       2
 auto-increment-offset          =       1
 expire_logs_days               =       10
 max_binlog_size                =       512M

Iniciando o MySQL.

# /etc/init.d/mysqld start
# chkconfig mysqld on

dados-2

# vim /etc/my.cnf
# REPLICACAO
 log-bin                        =       mysql-bin
 server-id                      =       2
 sync_binlog                    =       1
 binlog_ignore_db               =       mysql
 auto-increment-increment       =       2
 auto-increment-offset          =       2
 expire_logs_days               =       10
 max_binlog_size                =       512M

Iniciando o MySQL.

# /etc/init.d/mysqld start
# chkconfig mysqld on

dados-1

mysql> grant all privileges on *.*  to root@'192.168.1.11' identified by 'senha-banco';
Query OK, 0 rows affected (0,01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

dados-2

mysql> grant all privileges on *.*  to root@'192.168.1.10' identified by 'senha-banco';
Query OK, 0 rows affected (0,01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,01 sec)

dados-1

mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 484
     Binlog_Do_DB: 
 Binlog_Ignore_DB: mysql,test
Executed_Gtid_Set: 
1 row in set (0,00 sec)

dados-2

mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 405
     Binlog_Do_DB: 
 Binlog_Ignore_DB: mysql,test
Executed_Gtid_Set: 
1 row in set (0,00 sec)

dados-1

mysql> change master to master_host='192.168.1.11',master_user='root',master_password='senha-banco',master_log_file='mysql-bin.000003',master_log_pos=405;
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

dados-2

mysql> change master to master_host='192.168.1.10',master_user='root',master_password='senha-banco',master_log_file='mysql-bin.000003',master_log_pos=484;
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

dados-1

mysql> grant super,reload,select,replication slave on *.* to 'root'@'192.168.1.11 'identified by 'senha-banco';
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

dados-2

mysql> grant super,reload,select,replication slave on *.* to 'root'@'192.168.1.10 'identified by 'senha-banco';
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

dados-1

mysql> start slave;

dados-2

mysql> start slave;

Testando

Em ambos os servidores, execute o comando abaixo:

mysql> show slave status\G

Verifique os parâmetros Slave_IO_Running e Slave_SQL_Running. Ambos devem estar com o valor “YES”. Caso não esteja, refaça o processo.

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
>_MySQL 5.6 – CentOS 6.5 x64 – Replication – Master to Master
Tagged on:

2 thoughts on “>_MySQL 5.6 – CentOS 6.5 x64 – Replication – Master to Master

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: