PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 09/11/2012 13:04:13

simolay
Membre

déclencher une requête à une heure précise chaque jour PostgreSQL

bonjour,
j'aimerais avoir vos lumières sur une chose.
j'aimerais déclencher une requête à une certaine heure.
faut-il utiliser un Timer ou autre chose ? et comment ?
merci d'avance

Hors ligne

#2 09/11/2012 13:20:28

kenrio
Membre

Re : déclencher une requête à une heure précise chaque jour PostgreSQL

Pourquoi pas utiliser le cron (linux) ou le scheduler (win) ?

Dernière modification par kenrio (09/11/2012 13:20:37)

Hors ligne

#3 10/11/2012 21:37:42

SQLpro
Membre

Re : déclencher une requête à une heure précise chaque jour PostgreSQL

le mieux serait d'utiliser PGagent.

A +


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

#4 15/11/2012 12:34:44

butin-matou
Membre

Re : déclencher une requête à une heure précise chaque jour PostgreSQL

Chez nous, avec Ubuntu 12.04 et PG 9.1.6, j'ai un cron job qui tourne toutes les nuits pour nous faire des stats.

Je fais donc comme ceci ...

1. Cron pour lancer un fichier de commandes bash : postgresbatch.sh
    crontab -l
    00 22 * * 1-5 bash /home/xx/pgstuff/prod/scripts/bash/postgresbatch.sh # JOB_ID_1

2. Dans postgresbatch.sh, j'ai ceci
    psql -f '/home/xx/pgstuff/prod/scripts/psql/psql stats batch.psqlb' -a -d pgbase  >'/home/xx/pgstuff/prod/scripts/bash/psql.log' 2>&1
    (qui lance psql avec (-f) un nom de fichier en argument, et stocke l'output de psql dans un fichier log psql.log)

3. Ce fichier  : 'psql stats batch.psqlb' contient des commandes psql comme ceci
    \echo `date`
    \timing
    \i '/home/xx/pgstuff/prod/scripts/psql/requete01.sql'
    \echo `date`

    \i '/home/xx/pgstuff/prod/scripts/psql/requete02.sql'
    \echo `date`

    ...

    \i '/home/xx/pgstuff/prod/scripts/psql/requete99.sql'
    \echo `date`

4. \echo `date` permet de voir la date et l'heure de lancement de chaque requête dans le log et de répérer les fainéants
    \i permet d'exécuter une requête
    \timing ... err... je ne sais plus

5. pour finir, j'ai un alias : alias greperr='grep -i Error /home/xx/pgstuff/prod/scripts/bash/psql.log'
    qui me permet de chercher des erreurs dans le fichier log, rapidos.

Voilà,

"Friendly" ,

Butin

Dernière modification par butin-matou (15/11/2012 12:39:45)

Hors ligne

Pied de page des forums