Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Relogio

backup Postgre

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

backup Postgre

Mensagem  juk em Qua Jun 26, 2013 1:52 pm

Restaurando Backups...
Ao se fazer um backup com pg_dump e pg_dumpall, geralmente o resultado é armazenado em arquivos texto. Neste caso, não há problemas em se restaurar o backup. Basta se colar o texto do arquivo em algum programa e submetê-lo ao PostgreSQL.

No entanto, ao se fazer o backup, podem ter sido escolhidas opções de compactação que gerem um backup binário.

Nestas situações, pode ser utilizado o utilitário pg_restore para se recuperar os dados de sua cópia de segurança.

Caso o nome do banco de dados seja especificado, o utilitário recupera os dados dentro do banco. Do contrário, o mesmo transforma os dados recuperados em texto, gravando em um arquivo que pode ser utilizado para fazer uma restauração manual.

A sintaxe abaixo restaura um arquivo para o banco de dados:

pg_restore (caminho do arquivo de backup) -u -d (nome do banco de dados)

-u - faz com que o sistema solicite um usuário com permissões para realizar o restore (criação de objetos, por exemplo)
-d - indica o nome do banco de dados que vai receber o restore

Agora, um exemplo de restore para um arquivo texto:

pg_restore (caminho do arquivo de backup) -u -f (nome do arquivo de destino do restore)

-f - indica o caminho do arquivo texto que vai receber o restore na forma de script SQL

A geração para arquivo texto pode ser aconselhável quando se quer ter maior controle sobre as operações realizadas. No entanto, a descompactação dos dados pode exigir uma boa quantidade de espaço em disco. Meus testes revelaram que o arquivo restaurado chega facilmente a 20 vezes o tamanho do arquivo de backup original.
==============================================================================================================

Para efetuar backup e restore utilizamos o comando pg_dump em conjunto com o psql.

Obs.: O pg_dump não faz backup de objetos grandes (lo) por default. Caso desejemos também estes objetos no backup devemos utilizar uma saída no formato tar e utilizar a opção -b.
pg_dump -Ftb banco > banco.tar
Backup local de um único banco:

pg_dump -U usuario -d banco > banco.sql

pg_dump -Ft banco > banco.tar
O script normalmente leva a extensão .sql, por convenção, mas pode ser qualquer extensão e o script terá conteúdo texto puro.
Restore de um banco local:

psql -U usuario -d banco < banco.sql

pg_restore -d banco banco.sql

pg_restore -d banco banco.tar
Obs.: Cuidado ao restaurar um banco, especialmente se existirem tabelas sem integridade. Corre-se o risco de duplicar os registros.
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 local de todos os bancos:

pg_dumpall -U nomeusuario -d nomebanco > nomescript
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
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
avatar
juk

Mensagens : 224
Data de inscrição : 02/04/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum