Backup de tabelas no PostgreSQL utilizando pg_dump

0Comments

Muitas vezes temos necessidade de realizar backup e restaurar uma única tabela, seja para restaurar uma tabela de produção em um ambiente de testes ou apenas para garantir nossos dados mais importantes em uma frequência diferente do backup completo.

Em outro post falamos sobre como realizar backup no PostgreSQL, mas de uma forma geral, do banco de dados completo. A idéia agora é utilizar o backup de apenas uma ou mais tabelas.

O PostgreSQL possui a ferramenta pg_dump específica para realizar backups, porém, podemos passar alguns parâmetros que permitem personalizar a saída do backup, e no nosso caso, utilizaremos o parâmetro -t para informar para qual tabela será realizado o dump.

Um comando normal de backup do banco de dados completo:

pg_dump -f nome_do_arquivo -d nome_do_banco_de_dados

Dessa forma teremos um backup em modo plain text (texto puro), sem nenhuma compactação do banco de dados completo.

Para fazer backup apenas da tabela TESTE, o comando ficaria assim:

pg_dump -f nome_do_arquivo -t teste -d nome_do_banco_de_dados

Caso seja uma tabela muito grande, você pode utilizar o parâmetro -F para especificar o formato de saída e em seguida passar “t” (sem aspas) para informar compactação do tipo tar, como no exemplo abaixo:

pg_dump -Ft -f nome_do_arquivo.tar -t teste -d nome_do_banco_de_dados

Lembre-se que a compactação será realizada em tempo real, durante a execução do backup e para isso você precisa de espaço em disco suficiente na partição alocada para a pasta temporária do sistema operacional.

Até breve

Tags:, , , ,