On 19-12-2014 13:49, Everton Berz wrote:
> tenho um hot-standby com streaming replication (versão 9.3.5).
> 
> Quando faço pg_dump no standby ele deixa de ser atualizado, chegando a
> ficar 2 horas atrasado em relação ao primário.
> 
> Isso é normal? A característica MVCC do PostgreSQL não deveria superar essa
> restrição?
> 
É. Não. Explico...

Se essa cópia demora cerca de duas horas, serão duas horas sem poder
remover tuplas ou páginas que já estão obsoletos no servidor principal.
Isso implica em atraso na replicação se o banco de dados copiado estiver
sendo modificado.

A replicação nada mais é do que escrever páginas modificados dos
datafiles (servidor principal) no servidor réplica. Partindo dessa
premissa e de que a cópia não pode ser inconsistente, eu preciso "parar"
de replicar até que a cópia termine (senão terei uma cópia
inconsistente). Portanto, o MVCC está lá justamente para garantir a
consistência da cópia. O Postgres faz um bloqueio (utilizando como ponto
de partida um id de transação) e nada após o id de transação obtido
poderá ser removido antes da cópia ser concluída. É o mesmo princípio
para consultas demoradas (não substitui páginas que estão sendo
utilizadas pelas consultas).


-- 
   Euler Taveira                   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a