O PGAgent é uma aplicação que possibilita a execução agendada de tarefas no banco de dados PostgreSQL, uma vez que este agendamento não é nativo como no Oracle. Então vamos deixar de "blablabla" e mão na massa:
Este post utilizará como base o PostgreSQL 8.4 e o PGAgent 3.0.
Então como no pica-pau, e lá vamos nós...
Considerando que seu banco já está ativo, configurado para ouvir na porta 5432 e você usa RedHat like, baixe o PGAgent:
# cd /opt/resources
# wget http://wwwmaster.postgresql.org/download/mirrors-ftp/pgadmin3/release/pgagent/pgAgent-3.0.0-Linux.tar.gz
Descompacte e acesse o diretório share da pasta que acabou de extrair:
# tar xvfz pgAgent-3.0.0-Linux.tar.gz
# cd pgAgent-3.0.0-Linux/share
Se seu banco ainda não tem a linguagem 'plpgsql', crie com o seguinte comando:
# createlang plpgsql
Agora importe o arquivo 'pgagent.sql' e 'pgagent_upgrade.sql' para a database 'postgres':
# psql -U postgres postgres < pgagent.sql ; psql -U postgres postgres < pgagent_upgrade.sql
Não esqueça de que para o PgAgent funcionar corretamente no pg_hba.conf as conexões locais devem ser configuradas para 'trust', pois sua senha da role 'postgres' na string de conexão não seria legal.
Bom, agora vamos ao daemon, vamos criar um "service" para o pgagent, que será iniciado depois do banco por razões claras.
Segue fonte do "service":
#!/bin/sh
#
# pgagent: Agent Jobs to PostgreSQL.
#
# chkconfig: 2345 96 89
# description: PGAgent is a daemon to scheduler jobs in PostgreSQL.
#
# Source function library.
. /etc/rc.d/init.d/functions
# --- CONFIG --- #
# Log mode - 0 = error 1 = warning 2 = debug
LOG=1
# Log destination
STDERR="/var/log/pgagent.log"
# Connection string
CONN="hostaddr=127.0.0.1 port=5432 dbname=postgres user=postgres"
# --- #
start()
{
echo -n $"Starting PGAgent: OK"
/opt/resources/bin/pgagent -f -l $LOG -s $STDERR $CONN >> $STDERR 2>&1 &
echo
}
stop()
{
echo -n $"Shutting down PGAgent: "
/usr/bin/killall -9 pgagent
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
Adicione o "service" com o seguinte comando:
# cd /etc/init.d ; chmod +x pgagent ; chkconfig --add pgagent
Pronto, agora é só iniciar ele(service pgagent start) e criar seus jobs.
Para criar jobs é muito fácil pelo PgAdmin, segue a documentação de como fazer:
http://www.pgadmin.org/docs/1.4/pgagent.html
Olá, você pode me ajudar porfavor? Estou tentando a um tempo, baixar o pgAgent para windows (.exe.), mas não consigo, os links que encontro não levam a lugar algum, você poderia me dar essa força?
ResponderExcluirNão sei se você já resolveu teu problema, mas eu tive o mesmo e resolvi desinstalando o pgAdminIII e instalando novamente. Na instalação tem várias opções para você instalar, entre elas o pgAgent.
ExcluirJá tentou compilar o PGAgent no Windows? Tente a última versão do source, se não der tenta essa: http://udm4.com/Windows/pgAgent-132971
ResponderExcluirNão tão longe que eu encontrei nova ferramenta legal trabalhar com o PostgreSQL em win - Valentina Studio. Sua versão gratuita pode fazer as coisas mais do que muitas ferramentas comerciais!
ResponderExcluirI muito recomendar verificá-lo. http://www.valentina-db.com/en/valentina-studio-overview
é muito facil use o Application Stack Builder que ja vem na instalação padrão do postgre para windows, coisinha basica menu iniciar - postgresql - application stack builder, facil facil, postgre 8.4 ou superior
ResponderExcluir