Estou pedindo orientação.
Eu quero configurar uma replicação entre 3 servidores: 1 mestre A, 2 escravos B e C. O mestre transmite para 2 escravos. A para B é a replicação lógica , enquanto A para C é a replicação de streaming
Depois que li alguns artigos e agora estou ciente de que a replicação de streaming envolve pg_basebackup
, com o Slave puxando dados do Master.
Pergunta :
Li os artigos aqui e aqui . Qual está correto,
"ALTER SYSTEM SET listen_addresses TO '*';"
OUlisten_addresses = 'your_primary_IP_address'
. Estou apenas confuso.Quais são algumas considerações antes de prosseguir com a replicação que envolve 3 servidores?
Obrigado postgresql 12, Ubuntu 20.04
Sua pergunta é como habilitar conexões de rede para seu cluster PostgreSQL. Você pode usar qualquer um dos métodos descritos, eles são aproximadamente equivalentes para a maioria dos casos. A alteração
listen_addresses
requer uma reinicialização do servidor, portanto, planeje adequadamente.A única consideração é se seu host for multi-homed, ou seja, conectado a várias redes. Se for, e você não quiser expor o PostgreSQL a todas as redes, especifique os IPs de interface das redes às quais deseja vincular o PostgreSQL e deixe de fora os que não deseja.
O endereço especial '*' diz ao PostgreSQL para vincular a todos os endereços disponíveis. Na maioria dos casos, esse é apenas o único IP do servidor. (E
localhost
mas isso é menos importante.)Se você tiver um firewall ativado, também precisará permitir conexões por meio do firewall.
Há sérias implicações de segurança para habilitar conexões de rede. NUNCA exponha o PostgreSQL à Internet pública não filtrada. Seu banco de dados será hackeado e transformado em um minerador de criptomoedas se isso acontecer. Use um firewall para limitar o acesso apenas aos clientes de replicação.
O artigo da DigitalOcean não o menciona, então ele pode estar lá por padrão no Ubuntu, mas você precisa de uma entrada
pg_hba.conf
informando ao PostgreSQL como autenticar clientes de rede. Se você obtiver erros de autenticação no log do PostgreSQL quando os clientes de replicação tentarem se conectar, provavelmente esse é o problema.