Este artigo fornece informações sobre como realizar o backup e posteriormente o restore de bancos de dados PostgreSQL.
Para realização do backup, basta executar o comando abaixo com o usuário postgres:
# su - postgres
$ pg_dump agilitydb > agilitydb_18_09_2015.dump
Para realização do restore, basta executar o próprio comando psql, no formato a seguir:
$ psql agilitydb < agilitydb_18_09_2015.dump
Recomendável por razões de garantia de funcionamento do processo, parar o serviço responsável pela aplicação no servidor a qual será realizado o restore (que pode não estar no mesmo servidor):
# /etc/init.d/apache2 stop
ou
# /etc/ini.d/httpd stop
ou
# /etc/init.d/jboss stop
ou
# su - jboss
$ /opt/jboss/bin/shutdown.sh -S
OBS: o diretório do jboss pode mudar de acordo com o ambiente, assim como a aplicação que faz o acesso ao banco pode ser PHP (Apache/Nginx) ou Java (Jboss, Tomcat, etc)Realize os filtros dos processos “idle” correspondentes a essa base que será restaurada, para evitar tentativas de conexão durante o processo de restauração da base:
$ ps u -C postgres | grep -i agilitydb
postgres 5573 0.0 0.2 107188 2112 ? Ss Mar13 0:00 postgres: agility agilitydb 10.0.0.81(39270) idle
OBS: cuidado no filtro, garanta que os processos listados pertencem a base de dados que vocẽ deseja realizar o restore.
# kill 5573
E renomear o nome da base atual afim de evitar DROPAR a base e ter perda de dados:
$ psql
postgres# > ALTER DATABASE agilitydb RENAME TO agilitydb_backup;
E em seguida criar a base já informando o proprietário da base, o usuário da aplicação que fará esse acesso:
postgres=# postgres# > CREATE DATABASE agilitydb OWNER agility
Após esse processo restaurar a base:
$ psql agilitydb < agilitydb_18_09_2015.dump
E iniciar os serviços responsáveis pela aplicação:
# /etc/init.d/apache2 start
ou
# /etc/ini.d/httpd start
ou
# /etc/init.d/jboss start
ou
# su - jboss
$ /opt/jboss/bin/standalone.sh –S
Aplicando as configurações demonstradas neste artigo podemos efetuar de maneira segura cópias de nossos bancos de dados para quando necessário possamos restauras as informações contidas nos mesmos.