Primeiro de tudo, eu sou um desenvolvedor, não um DBA ou administrador de sistemas; por favor, seja gentil :)
Estou trabalhando em um fluxo de trabalho de aplicativos em que uma única ação do usuário acionará alterações complexas no banco de dados - criando centenas de registros em algumas tabelas, atualizando centenas de registros em outros, etc. No total, cerca de 12 tabelas ) são tocados por esta ação. Devido à complexidade, é muito difícil reverter manualmente todas as alterações antes que eu possa executar outro teste. Durante a maior parte do meu tempo de desenvolvimento, posso simplesmente inserir uma instrução "ROLLBACK" perto do final do fluxo de trabalho, mas quando chego perto de confirmar minhas alterações, preciso testar a realidade.
Eu tenho uma cópia local do banco de dados de produção para trabalhar. No meu caso, despejar e restaurar entre testes é mais rápido do que escrever um script para desfazer todas as alterações. É mais rápido, mas ainda está me deixando muito lento (a restauração leva cerca de 20 minutos no meu laptop antigo). Existe alguma maneira de salvar um instantâneo do estado atual do banco de dados e restaurá-lo rapidamente?
Tenho a garantia de ser o único usuário no sistema e tenho acesso root. O dump do banco de dados tem ~ 100 MB quando tar'ed e gzip'ed. A versão do PostgreSQL é 8.3.
Agradecemos antecipadamente por quaisquer idéias úteis.