Boa tarde pessoal,

Estou (tentando) realizar testes com replicação, e surgiram algumas dúvidas.
Segue uma descrição do cenário.

Master:
SO: Ubuntu Desktop 11.10 x86
PostgreSQL: 9.1.1, compilado direto do fonte

Slave
SO: Ubuntu Server 11.10 x86_64
PostgreSQL: 9.1.1, compilado direto do fonte

Minha (tentativa de) replicação está sendo feita via WAN, usando apenas log
shipping no momento (não estou usando streaming replication). Já é possível
ver pelo cenário que eu cometi um erro ao escolher as arquiteturas. Enquanto
ainda estou trabalhando nisso, tenho algumas dúvidas quanto ao envio dos
logs, e também sobre o streaming, caso venho a usar. Minha base em produção
tem uma carga de escrita razoavel, escrevendo cerca de 140 arquivos de log
por hora. Fazendo a matemática básica, eu teria de ter um link de pelo menos
6,5Mbps para manter a o slave atual em relação ao master. Meu objetivo é
reduzir esse número.

Dúvida 1: Envio do log
A documentação do Postgres fornece um exemplo (http://goo.gl/gyjnA) usando
os comandos 'test' e 'cp' para o envio dos logs. Como estou fazendo através
da WAN, estou usando 'scp' com troca de chaves, ao invés de 'cp'. Existe
algum problema em usar um comando compactando o arquivo, para diminuir o
volume de dados no link? Algo como:

tar cjf - %p | ssh remotehost " ( cd /destination/path ; tar xjf - ) "


Dúvida 2: Envio do banco para sincronização inicial
Como não estou configurando streaming replication no momento, não estou
usando o pg_basebackup para enviar o banco. Estou usando o comando SELECT
pg_start_backup('sync_inicial'); Realizo uma cópia com 'cp -a' e uso o
comando SELECT pg_stop_backup(); para voltar a operação normal. Como nesse
momento, os logs já estão sendo enviados, não vou perder nada de dados,
mesmo que demore um pouco para enviar o banco após enviar o comando 'stop'.
Existe problema em enviar os dados de maneira compactada, como na dúvida
anterior?

Dúvida 3: Envio via streaming
O streaming, tanto para o envio do basebackup quanto para envio dos logs,
usa algum tipo de compactação? Se sim, isso é configurável de alguma
maneira? Eu não tenho a necessidade de manter meu slave 100% sincronizado em
tempo real em relação ao master, então a janela de tempo que o log shipping
tem em relação ao streaming replication não seria um ponto tão negativo,
caso não seja possível compactar o tráfego do streaming. Em testes, os
arquivos de logs compactados usando bz2 consomem cerca de 20% do tamanho
total descompactado.

Abs!
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a