Até uma hora é muito longa para um pequeno arquivo de despejo de 21 MB. Estamos restaurando bancos de dados de arquivos de despejo comprimido de 2 GB em cerca de 30 minutos, mas podemos ter um hardware melhor; -)
O que você deve ler primeiro:
http://www.postgresql.org/docs/8.4/static/populate.html
É tudo sobre o seu problema. Ele informa como criar um banco de dados rapidamente.
SugestõesAdicionais :
- Primeiro, ative o registro de todas as declarações com o tempo de duração e veja o que está acontecendo
- Aumentar shared_buffers, padrão no Ubuntu 10.10 é de apenas 24 MB, veja link para configurar seu sistema linux para aceitar valores mais altos
- use --format = custom ou -Fc para dumping. É a melhor escolha
- você pode executar pg_restore em múltiplas CPUs com "-j" mas eu acho que você tem outros problemas que obter os últimos bits de performance
Para mais informações:
- Leia a excelente documentação on-line
- Compre Postgresql 9.0 Alto Desempenho (não em relação ao seu problema, é apenas um excelente livro para DBA PostgreSQL experiente)