Replicação de streaming e failover no PostgreSQL

14

Estou fazendo uma prova de conceito na replicação do PostgreSQL. Após a discussão no fórum, decidimos seguir a replicação de streaming, pois o desempenho é bom em comparação com outras soluções. O PostgreSQL não está fornecendo failover automático para replicação de streaming. Podemos mudar o escravo para o mestre usando um arquivo acionador, mas ele não é gerenciável. Então, eu gostaria de uma solução com failover automático e alta disponibilidade.

Soluções diferentes estão disponíveis:

  1. Repmgr
  2. Pulsação do Linux
  3. Pgpool-II (somente para failover automático)
  4. Qualquer outra ferramenta, caso você tenha usado.

Minha pergunta é qual solução deve ser usada?

Saurabh
fonte

Respostas:

8

Em nossa loja, selecionamos repmgr e pgbouncer em vez de pgpool. O repmgr possui algumas ferramentas interessantes para configurar e manter o cluster de servidores de banco de dados replicados. No nosso caso, 1 mestre e 2 escravos (um failover e um teste de desempenho de leitura ao vivo que podem se tornar o failover do novo mestre). O pgpool tem problemas com alterações na configuração, na maioria dos casos você precisa reiniciar o serviço e, portanto, tem algum tempo de inatividade. Este é um problema quando você precisa da disponibilidade 24x7x365.

repmgrd (o deamon) ajuda a selecionar o novo mestre após um failover, você realmente não quer uma situação de cérebro dividido. Temos um endereço IP virtual para o banco de dados mestre, o banco de dados que é mestre naquele momento. Quando outro servidor se torna mestre, esse é o único servidor que usa esse endereço. Todo servidor de banco de dados também possui seu próprio endereço IP para consultas somente leitura.

O repmgr é mantido pelos mesmos caras que criaram a replicação de streaming, para que eles saibam do que falam. A versão 2.0 está prestes a ser lançada.

Prepare-se para a pior situação, faça alguns testes sérios puxando alguns plugues de energia e de rede! Quando algo dá errado, muitas outras coisas já deram errado e o morderão pelas costas quando você não puder pagar.

A replicação é uma coisa, um failover de trabalho após alguns problemas sérios, é outra coisa.

Frank Heikens
fonte
1

Estamos usando duas soluções diferentes em combinação ao mesmo tempo ...

Pgpool-II para replicação síncrona e Slony2 para replicação assíncrona (disparada).

O desempenho é excelente

user5701
fonte
Obrigado pela resposta ... Na verdade, estou tentando o Pgpool-II com replicação de streaming. Está fornecendo o failover automático. Mas se eu iniciar o nó primário novamente, o pgpool-II será iniciado como mestre novamente ou no modo de espera?
precisa saber é o seguinte
Tanto quanto eu sei definitivamente não. você precisará fazer uma recuperação manual do nó primário. Nossa configuração é um pouco diferente. é um ambiente multi mestre e todos os nós têm direitos iguais. Se um nó ficar fora de sincronia, os balanceadores de carga recusarão o redirecionamento de clientes para esse nó.
precisa saber é o seguinte