PostgreSQL – Backup e Restore

Backup local de um único banco:
pg_dump -U usuario -d banco > banco.sql
pg_dump -Ft banco > banco.tar

Restore de um banco local:
psql -U usuario -d banco < banco.sql
pg_restore -d banco banco.sql
pg_restore -d banco banco.tar

Descompactar e fazer o restore em um só comando:
gunzip -c backup.tar.gz | pg_restore -d banco
ou
cat backup.tar.gz | gunzip | pg_restore -d banco
(o cat envia um stream do arquivo para o gunzip que passa para o pg_restore)

Backup local de apenas uma tabela de um banco:
pg_dump -U nomeusuario -d nomebanco -t nometabela > nomescript

Restaurar apenas uma tabela
Para conseguir restaurar apenas uma tabela uma forma é gerar o dump do tipo com tar:
pg_dump -Ft banco -f arquivo.sql.tar
pg_restore -d banco -t tabela banco.sql.tar

Backup remoto de um banco:
pg_dump -h hostremoto -d nomebanco | psql -h hostlocal -d banco
Backup em multivolumes (volumes de 200MB):
pg_dump nomebanco | split -m 200 nomearquivo
m para 1Mega, k para 1K, b para 512bytes

Backup local de todos os bancos:
pg_dumpall -U nomeusuario -d nomebanco > nomescript

Importando backup de versão anterior do PostgreSQL
Instala-se a nova versão com porta diferente (ex.: 5433) e conectar ambos
pg_dumpall -p 5432 | psql -d template1 -p 5433

Observação: vale salientar que o usuário deve estar logado como postgres no console. Usando o comando su – postgres ou então verificando o usuário que está configurado com permissão all no arquivo pg_hba.conf

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: