Eu tenho um banco de dados de 3 GB que é constantemente modificado e preciso fazer backups sem interromper o servidor (Postgres 8.3).
Meu pg_dump é executado por 5 minutos. E se os dados forem modificados durante o processo? Eu recebo backups consistentes? Não quero descobrir quando ocorrer um desastre.
A documentação do Postgres http://www.postgresql.org/docs/8.3/static/app-pgdump.html não diz nada sobre isso.
postgresql
romano
fonte
fonte
Respostas:
Do manual :
Então, sim, você pode confiar no backup. Obviamente, é o PostgreSQL, você pode confiar nos seus dados no PostgreSQL.
fonte
O pg_dump inicia uma transação, da mesma forma que qualquer outra consulta de execução longa funcionará. As garantias de consistência vêm da implementação do MVCC . O despejo sempre será autoconsistente dentro dessas regras.
Todas as partes difusas do MVCC estão relacionadas a coisas como a ordem em que as transações UPDATE se tornam visíveis para outros clientes e como os bloqueios são adquiridos. O pg_dump é rigoroso quanto à compra e adquire um bloqueio de leitura em todo o banco de dados para despejá-lo. Para a maioria das pessoas, é o que elas esperam, e o mecanismo usado nunca causa problemas. O principal risco de simultaneidade é que os clientes que tentam alterar a estrutura do banco de dados serão bloqueados enquanto o dump estiver em execução. Isso não afeta a qualidade do despejo.
fonte
O despejo começa com a configuração
TRANSACTION ISOLATION LEVEL SERIALIZABLE
.Leia o manual sobre isolamento de transações e, por exemplo, a discussão da lista de usuários sobre isso .
Citar:
Basicamente, tudo depois
pg_dump
define o nível de isolamento da transação não faz parte desse despejo.As operações de leitura / gravação não são afetadas (bloqueadas) durante esse período.
fonte
Primeiro desculpe por responder a esse tópico antigo. Mas, pela minha experiência, não posso confirmar a afirmação de que você pode confiar em pg_dump /
Mudei há um mês para um projeto para o postgres. E é claro que fiz todos os backups com pg_dump do sistema ativo, conforme sugerido. Mas após a primeira verificação de backup, descobri que todos os lixões tinham tamanhos diferentes. Depois de restaurar algumas delas aleatoriamente, descobri que algumas tabelas estão faltando. Então comecei a analisar por que isso aconteceu e descobri que se o aplicativo de sobreposição, por exemplo, servidores de aplicativos, bloquear algumas tabelas e pg_dump, não está esperando até que sejam liberados. Sempre fui necessário parar o servidor durante o período de backup, o que não é uma boa solução.
Então, ainda estou procurando uma correção, mas como eu disse, discordo totalmente da afirmação de que você pode confiar no pg_dump.
fonte