----- Original Message ----- From: Matheus de Oliveira To: Comunidade PostgreSQL Brasileira Sent: Tuesday, November 05, 2013 1:34 PM Subject: Re: [pgbr-geral] duvidas sobre replicacao por streaming
2013/11/5 Wellington <[email protected]> Pessoal, boa tarde a todos, tenho uma duvida: Por que ao fazer uma consulta sql em um servidor Slave, as vezes o PostgreSQL cancela as consultas ? O erro mostrado eh o seguinte: "Comando cancelado devido a conflitos de recuperacao". Isso ocorre devido à um conflito com o que está sendo replicado (enviado pelo master) e o que está sendo consultado no slave. Por exemplo (bem superficial), vamos pensar que o autovacuum removeu a tupla X no master, quando essa informação é enviada para o slave, o mesmo deve removê-la também, mas pode ser que alguma consulta esteja lendo ela (ela está visível à transação), logo o slave não pode remover, ou seja, houve um conflito entre um comando executando no slave e o enviado pelo walsender do master. Soluções, vão depender da sua versão do PostgreSQL e uma análise mais detalhada. Matheus, acho que os conflitos estao acontecendo entao, por causa da remoçao de tuplas que os proprios usuarios fazem. O autovacuum esta desabilitado, pois é executado em horarios agendados no cron. Outra duvida: Existe algum processo automatico que verifica se o servidor slave esta com os dados sincronizados com o servidor master ? Sim. Também vai depender de sua versão do PostgreSQL. A gente usa a versao 9.1, existe algo referente a isto nas versoes mais novas ? Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
