Você está na página 1de 5

Como fazer backup Bancos de

dados PostgreSQL em um VPS


Ubuntu
O que PostgreSQL?
PostgreSQL um sistema de gerenciamento de banco de dados moderno.
freqentemente usado para armazenar e manipular informaes relacionadas a
sites e aplicaes.
Como acontece com qualquer tipo de dados valiosos, importante implementar
um esquema de backup para proteger contra a perda de dados. Este guia ir
cobrir algumas maneiras prticas que voc pode fazer backup de seus dados
PostgreSQL.
Ns estaremos usando um Ubuntu 12.04 com VPS PostgreSQL 9.1. A maioria
das distribuies modernas e recentes verses do PostgreSQL vai operar de
uma forma similar.

Como fazer backup de um banco de dados


PostgreSQL Usando pg_dump
PostgreSQL inclui um utilitrio chamado " pg_dump "que pode ser usado para
despejar as informaes de banco de dados em um arquivo para fins de
backup.
O utilitrio pg_dump executado a partir da linha de comando do Linux. A
sintaxe bsica do comando :

pg_dump name_of_database > name_of_backup_file


O comando deve ser executado por um usurio com privilgios de ler todas as
informaes do banco de dados, de modo que ele executado como
superusurio a maior parte do tempo.

Para um exemplo do mundo real, podemos entrar no usurio "postgres" e


executar o comando no banco de dados padro, tambm chamados de
"postgres":

sudo su - postgres
postgres pg_dump> postgres_db.bak
Este comando na verdade um programa cliente PostgreSQL, para que possa
ser executado a partir de um sistema remoto, enquanto que o sistema tem
acesso ao banco de dados.
Se voc deseja fazer o backup de um sistema remoto, voc pode passar a
bandeira "-h" para especificar o host remoto, eo "-p" bandeira para dar a porta
remota:

pg_dump -h remote_host -p remote_port


name_of_database > name_of_backup_file
Voc tambm pode especificar um usurio diferente usando a opo "-U", se
necessrio. A sintaxe seria:

pg_dump -U user_name -h remote_host -p


remote_port name_of_database >
name_of_backup_file
Tenha em mente que os mesmos requisitos de autenticao existem para
pg_dump como para qualquer outro programa cliente. Isso significa que voc
deve garantir que seu log em credenciais so vlidas para os sistemas que
voc est tentando fazer backup.

Como restaurar dados Dumps de pg_dump


com PostgreSQL
Para restaurar um backup criado pelo pg_dump, voc pode redirecionar o
arquivo em psql entrada padro:

psql empty_database < backup_file

Nota: esta operao de redirecionamento no cria o banco de dados em


questo. Isto deve ser feito num passo separado, antes da execuo do
comando.
Por exemplo, podemos criar um novo banco de dados chamado
"restored_database" e, em seguida, redirecionar um despejo chamado
"database.bak" emitindo os seguintes comandos:

createdb -T template0 restored_database


psql restored_database <database.bak
O banco de dados vazio deve ser criado utilizando "template0" como a base.
Outro passo que deve ser realizada, a fim de restaurar corretamente recriar
todos os usurios que possuem ou tm conceder permisses em objetos
dentro do banco de dados.
Por exemplo, se o seu banco de dados tinha uma tabela de propriedade do
usurio "test_user", voc ter que cri-lo no sistema de restaurao antes de
importar:

createuser test_user
psql restored_database <database.bak

Lidar com Erros Restaurao


Por padro, o PostgreSQL tentar continuar a restaurao de um banco de
dados, mesmo quando ele encontra um erro ao longo do caminho.
Em muitos casos, isto indesejvel por razes bvias. Pode ser doloroso para
tentar resolver o que operaes so necessrias para restaurar o banco de
dados para seu estado adequado.
Podemos dizer PostgreSQL para parar em qualquer erro, digitando:

psql --set ON_ERROR_STOP = on restored_database


< backup_file
Isso far com que um PostgreSQL operao de restaurao para que
suspendam imediatamente quando for encontrado um erro.
Isso ainda vai deixar voc com um banco de dados aleijado que no foi
totalmente restaurado, mas agora voc pode lidar com erros como eles vm
para cima em vez de lidar com uma lista de erros no final.
A melhor opo em muitas situaes pode ser a "-1" (o nmero um) ou
"transao --single" opo:

psql -1 restored_database < backup_file


Esta opo executa todos os detalhes da restaurao em uma nica transao.
A diferena entre esta opo e a definio "ON_ERROR_STOP" que isso vai
ter sucesso ou completamente ou no importar nada.
Isso pode ser um caro trade-off para grandes restauraes, mas em muitos
casos, o benefcio de no deixando-o com um banco de dados parcialmente
restaurado fortemente supera esse custo.

Como fazer backup e restaurar todos os


bancos de dados em PostgreSQL
Para economizar tempo, se voc gostaria de fazer backup de todos os bancos
de dados em seu sistema, existe um utilitrio chamado " pg_dumpall ".
Eles sintaxe do comando muito semelhante ao comando pg_dump regulares,
mas no especifica o banco de dados. Em vez disso, o comando faz o backup
de todos os dados disponveis:

pg_dumpall> backup_file

Voc pode restaurar os bancos de dados, passando o arquivo para psql, com o
banco de dados padro:

psql -f backup_file postgres

Concluso
Backups so um componente essencial em qualquer tipo de plano de
armazenamento de dados.Felizmente, PostgreSQL d-lhe os utilitrios
necessrios para efetivamente backup de suas informaes importantes.
Como acontece com qualquer tipo de cpia de segurana, importante para
testar seus backups regularmente para garantir que as cpias que so criados
podem ser restaurados corretamente. Os backups criados s so teis se eles
realmente pode ser usado para recuperar o sistema.

Você também pode gostar