A replicação de banco de dados no PostgreSQL refere-se à capacidade de criar e manter cópias idênticas de um banco de dados PostgreSQL em diferentes locais, em tempo real. Essa técnica é usada para melhorar a disponibilidade, a escalabilidade e a confiabilidade de um sistema de banco de dados.
Existem diferentes métodos de replicação no PostgreSQL, sendo estes alguns dos principais:
- Replicação de Log de Transações (Wal Shipping): Nesse método, as mudanças no banco de dados são registradas no log de transações (WAL - Write-Ahead Logging) e, em seguida, esses registros são enviados (shipped) para os servidores de réplica. Os servidores de réplica aplicam essas mudanças em ordem para manterem-se sincronizados com o servidor principal.
- Replicação Síncrona: Nesse tipo de replicação, a confirmação da transação no nó principal só ocorre depois que pelo menos um número definido de nós de réplica confirmam que receberam e aplicaram a transação. Isso garante que os nós de réplica estejam sempre atualizados, observação importante: “pode introduzir latência nas transações”, pois elas só são confirmadas após a replicação.
- Replicação Assíncrona: Nesse caso, a confirmação da transação no nó principal ocorre independentemente da confirmação dos nós de réplica. Isso pode resultar em uma pequena inconsistência entre o nó principal e os nós de réplica, mas geralmente oferece melhor desempenho.
- Slot de Replicação: O conceito de "slot de replicação" no PostgreSQL permite que os servidores de réplica solicitem automaticamente as alterações necessárias ao servidor principal. Isso facilita a configuração da replicação.
A tabela abaixo foi retirada da documentação oficial PostgreSQL, onde podemos verificar as diferentes soluções quando falamos sobre: High Availability, Load Balancing, e Replication.
Confira as opções de replicação disponibilizadas abaixo:
Note que as opções são referentes à replicação assíncrona, que tem o potencial de atender à maioria de usuários. Caso queira aplicar outro tipo de replicação, faça o teste em uma base de homologação e certifique-se de avaliar a mudança em performance e se os dados necessários estão corretamente replicados.