Backup
Para realizar o backup
, primeiro precisamos logar como usuário postgres
. No terminal entre com:
sudo su - postgres
É possível visualizar a lista de bancos existentes na sua máquina através do comando abaixo:
psql -l
Agora, vamos realizar o backup do banco com o seguinte comando:
pg_dump -Fc nome_banco > nome_banco_backup.dump
Assim será criado um arquivo com a extensão .dump
no diretório /var/lib/postgressql
.
Também podemos incrementar o comando de modo a deixarmos registrado o dia, hora e minuto em que o backup
foi realizado, algo muito útil caso você precise realizar a restauração do banco.
pg_dump -Fc nome_banco > nome_banco-backup-`date +%Y-%m-%d-%H-%M`.dump
Restore
A restauração do banco é tão simples quanto o backup
.
Primeiramente, vamos criar uma entrada para o banco que será restaurado.
createdb nome_banco -O nomeusuario
Onde nome_usuario
é o usuario que sera dono do banco de dados recém-criado.
Apenas uma observação, antes de criar uma entrada para o novo banco, é uma boa prática verificar se já não existe outro banco com o mesmo nome. Isso pode ser feito com o comando psql -l
.
Finalmente realizamos o restore
do banco com o comando:
pg_restore -d banco_do_cliente_x banco_backup.dump
pg_restore -U nome_usuario -d nome_banco nome_banco-backup.dump -h 127.0.0.1 --no-owner
# ou para arquivos .sql
psql -U nome_usuario -d nome_banco -f backupfile.sql -h 172.0.0.1
# ou
psql -U nome_usuario -d nome_banco -f backupfile.sql -h localhost
O nome_usuario
e --no-pwner
garantem que o postgres não vai tentar restaurar o banco com o mesmo usuario que foi usado no backup. Isso é util em situações onde o usuario do banco é diferente do usuário que sera o novo dono do banco.