Aqui no meu trabalho tenho algo parecido com isso, em um servidor de
desenvolvimento, todo dia de madrugada a base é recriada. Mantendo sempre
atualizada com os dados de produção, ou seja, os devs se divertem durante o
expediente e de noite ela é recriada com
os dados do backup full da madrugada, os passos sao basicamente estes:

-- mata as conexoes - 9.2+
- SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'BancoDeDados' AND pid <>
pg_backend_pid(); ()

-- deleta o banco
- drop database "BancoDedados"

-- cria o banco novamente
- create database "BancoDeDados" template template0 encoding 'LATIN1'
lc_collate 'C' lc_ctype 'C';

-- realiza restore (aqui to usando o psql mesmo em vez do pg_restore)
- psql -U postgres -h HOST -d BancoDeDados -f /path/para/dump.sql

-- executo alguns scripts do contexto


Um shell script realiza isso via crontab
00 01 * * * cd /path/para/script/; ./script.sh &> /dev/null


Na pratica temos sempre dados atualizados frescos, mas tecnicamente é
deletar e recriar do zero o banco.

Espero que sirva para algo !

Em 6 de maio de 2015 17:47, Euler Taveira <eu...@timbira.com.br> escreveu:

> On 06-05-2015 15:37, Marcio Ribeiro de Oliveira wrote:
> > Obrigado pela ajuda, só uma duvida. ao fazer esse restore diário só vai
> > atualizar os dados certo.
> >
> Qual restore está se referindo? O último citado? [É por essas e outras
> que o top-posting deve ser evitado. Considere responder no contexto como
> estou fazendo aqui.]
>
> O comando que foi citado vai restaurar uma base de dados sobre a outra.
> [Inclusive ele vai funcionar somente na primeira vez -- quando a base de
> dados no destino estiver "vazia". Se for adicionada a opção -c no
> pg_restore, ele vai excluir os objetos definidos no arquivo gerado e
> depois criar os objetos -- esquema e dados -- no banco de dados do
> destino. Se preferir pode optar pelo DROP DATABASE/CREATE DATABASE no
> destino antes da restauração.]
>
> Você não explicou o que quer dizer com "atualizar diariamente". É tudo
> (esquema e dados)? Somente os dados (tudo)? Somente os dados
> (modificado)? A primeiro é mais fácil (vide explicação acima). O segundo
> vai dar um pouco de trabalho já que você precisa truncar as tabelas. E a
> última opção, somente com um programa que compare registro a registro.
>
>
> --
>    Euler Taveira                   Timbira - http://www.timbira.com.br/
>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
foobar
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a