Estou tentando entender os melhores usos da replicação do PostgreSQL e como ela funciona, para que eu possa solucionar problemas em um ambiente de produção.
Estou tendo dificuldade para entender as diferenças entre esses 2 tipos de replicação em termos de (1) Configuração (2) Como os 2 servidores Master / Slave se saem em cada cenário
A replicação no PostgreSQL (9.2+) é essencialmente arquivos XLOG de 16 MB de tamanho (dependendo das configurações de frequência para a criação de cada arquivo) estão sendo criados no Master e enviados por algum método ao escravo.
Minha configuração (para fins desta pergunta)
Configuração do Postgresql.conf no
arquivo mestre_command = 'rsync -av% p postgres @ [SlaveIP]: [wal_archive_folder] /% f'
Configuração do Recovery.conf no Slave para ler os arquivos de log
restore_command = 'cp [pasta_arquiva_do_arquivo] /% f \ "% p \"'
primary_conninfo = 'host = [MasterIP] port = 5432 user = postgres'
Minha pergunta é: que parte dessa configuração faz essa replicação de "streaming" versus "envio de logs"? Meu mestre está configurado para usar o rsync para enviar logs para o escravo (este log está sendo enviado?) Meu escravo está configurado para poder conectar-se ao mestre em recovery.conf (este streaming está sendo feito?)
Segunda parte da pergunta: O que está acontecendo? Entendo que existe outro protocolo no PostgreSQL via WAL_sender e WAL_receiver. Mas não sei se isso é usado apenas para streaming e, se sim, como o rsync está sendo usado no Master?
:) Obrigado!! E desculpe se esta é uma pergunta óbvia. Venho lendo bastante blogs / livros, mas tenho dificuldade em entender. O wiki do Postgres é tão profundo que leva muito tempo para passar por tudo (e eu tenho prazos)