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;