Um bom backup de banco de dados é consistente, portanto, o despejo inteiro representa o estado em que o despejo foi iniciado. Uma estratégia típica para isso no MySQL é bloquear a tabela, para que nenhum dado adicional possa ser gravado durante o backup. Mas bloquear o banco de dados é uma experiência ruim do usuário (respostas lentas ou até mesmo tempos limite, se o despejo levar muito tempo). Então, eu me pergunto se o Postgres tem um método para fazer backups consistentes sem bloquear as tabelas.
(Minha estratégia de backup atual com o MySQL é ter um escravo apenas para os backups, portanto, o mestre pode continuar a atender às solicitações dos usuários enquanto eu posso fazer um despejo consistente. Mas isso introduz outros pontos de falha, por exemplo, a replicação pode falhar)
fonte