Você parece estar tentando verificar a validade e a correção de um dump do PostgreSQL que acabou de fazer.
Seu principal mal-entendido é que você não precisa restaurar o despejo no mesmo banco de dados em que o criou . Você pode restaurar para outro banco de dados no mesmo cluster ou, para uma paranóia extra, um banco de dados em outro cluster (servidor). Verifique se o dump foi restaurado sem erros e se os dados estão como você espera.
Para paranóia extra, pare o servidor PostgreSQL e copie os arquivos no diretório de dados. Dessa forma, você também tem um backup em nível de arquivo. Observe que as cópias em nível de arquivo dos diretórios de dados do PostgreSQL podem somente ser lido pela mesma versão principal (8.1/8.2/...) do PostgreSQL construída com a mesma opção na mesma plataforma - então, se o datadir for de 9.2.x no Windows x64, ele só poderá ser lido por outro Windows host x64 com 9.2.x instalado.
Se você está preocupado com seu banco de dados original, provavelmente não tem backups. Este é um crítico problema. Você precisa ler com urgência o capítulo da documentação sobre backup e restauração e obter um bom automatizado esquema de backup em vigor. Dê uma olhada em barman .
Atualizar após a edição da pergunta :
-F t
é uma escolha estranha; dumps SQL simples ou -F c
geralmente faz mais sentido. O arquivo que você produziu não é um
.gz
(compactado com gzip), de qualquer forma, é um arquivo .tar
arquivo, não compactado. Ele pode ser extraído em um diretório cheio de arquivos SQL. Para testá-lo, use
pg_restore
para restaurá-lo em um novo banco de dados vazio criado com createdb
ou o CREATE DATABASE
comando.