Vous n'êtes pas identifié(e).
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
Pourquoi pas utiliser le cron (linux) ou le scheduler (win) ?
Dernière modification par kenrio (09/11/2012 13:20:37)
Hors ligne
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
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