Sobes.tech
Junior

O que é replicação no contexto de bases de dados?

sobes.tech IA

Resposta da IA

A replicação é o processo de copiar dados de uma base de dados principal para uma ou várias bases de dados secundárias em tempo real ou com um pequeno atraso.

Objetivos principais da replicação:

  • Aumentar a disponibilidade. Em caso de falha do mestre, a réplica pode assumir a carga.
  • Aumentar a velocidade de leitura. As solicitações de leitura são distribuídas entre o mestre e as réplicas.
  • Cópia de segurança. A réplica pode ser usada como uma cópia atualizada dos dados.
  • Análise. As consultas analíticas podem ser realizadas nas réplicas, sem sobrecarregar o mestre.

Tipos de replicação:

  • Assíncrona. O mestre não espera confirmação da réplica sobre a aplicação das mudanças. Pode haver um pequeno atraso nos dados.
  • Síncrona. O mestre espera confirmação da réplica. Garante a consistência dos dados, mas pode desacelerar a gravação no mestre.
  • Semi-síncrona. Um compromisso entre assíncrona e síncrona. O mestre espera confirmação de pelo menos uma réplica.

Exemplo de configuração do MySQL:

// my.cnf no mestre
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf na réplica
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Pode fazer réplica apenas para leitura

Configuração da réplica:

// Na réplica
CHANGE MASTER TO
MASTER_HOST='<IP_do_mestre>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_file>', // Obtido com show master status;
MASTER_LOG_POS=<binlog_position>; // Obtido com show master status;

START SLAVE;