Middle+
Quais características do trabalho com replicação em bancos de dados você pode destacar?
sobes.tech IA
Resposta da IA
A replicação fornece redundância, tolerância a falhas e escalabilidade através da criação de cópias de dados em diferentes servidores.
Principais características:
- Síncrona e assíncrona: A síncrona garante que os dados sejam gravados em todas as réplicas antes de confirmar ao cliente, assegurando alta consistência, mas potencialmente atrasando a gravação. A assíncrona confirma a gravação ao cliente antes de ser aplicada em todas as réplicas, mais rápida, mas com possível atraso na propagação das mudanças.
- Mestre-escravo (primário-secundário): Uma réplica (mestre) processa as gravações, as outras (escravos) apenas leem. As gravações do mestre são distribuídas para os escravos. Simples de implementar, mas pode tornar-se um gargalo sob alta carga de gravação.
- Multimestre: Várias réplicas podem aceitar gravações. Aumenta a disponibilidade para gravação, mas requer resolver conflitos quando se grava simultaneamente na mesma entrada em diferentes mestres.
- Atraso de replicação: Tempo entre a gravação no mestre e a aparição dos dados no escravo. Pode levar a ler dados desatualizados em escravos em replicação assíncrona.
- Resolução de conflitos: Necessária em replicação multimestre. Podem ser usadas diferentes estratégias: "a última gravação ganha", versão dos dados, funções personalizadas.
- Testes de carga: Importantes para determinar a configuração ótima e o número de réplicas.
- Monitoramento: Acompanhamento do estado da replicação, atraso, erros.
# Exemplo de monitoramento do estado da replicação no PostgreSQL usando psql
// SHOW WAL / XLOG LOCATION; -- No mestre
// SELECT pg_current_wal_lsn(); -- No mestre (desde 9.4)
// SELECT pg_last_wal_receive_lsn(); -- No escravo
// SELECT pg_last_wal_replay_lsn(); -- No escravo
Tabela: Comparação de tipos de replicação
| Tipo de replicação | Escrita | Leitura | Complexidade | Consistência |
|---|---|---|---|---|
| Mestre-escravo | Mestre | Mestre e escravos | Baixa | Alta (síncrona), Baixa (assíncrona) |
| Multimestre | Todas as réplicas | Todas as réplicas | Alta | Depende da estratégia de resolução de conflitos |