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 -lAgora, vamos realizar o backup do banco com o seguinte comando:
pg_dump -Fc nome_banco > nome_banco_backup.dumpAssim 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`.dumpRestore
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 localhostO 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.