#1 Mon 05 March 2018 16:43
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Requete bloquée pgAgent
Bonjour,
Je cherche à mettre sur pied une tâche planifiée à l'aide de PgAgent afin d'automatiser une procédure d'import de données.
Un des pas part en erreur (sans message) et je n'arrive pas à cerner le problème.
=> La requête fonctionne en mode manuel (outil exécuter vos propres requêtes sql)
=> Les droits / paramétrage du pas sont les mêmes que ceux des 10 premiers (qui fonctionnent sans problème)
=> J'ai essayé de supprimer le pas défectueux, et de le re-générer, mais cela n'a rien changé
La requête en question (j'ai raccourci):
Code:
INSERT INTO migration.data_entreprise_jour_geo2_source ([ma liste de champs]) select * from migration.data_entreprise_import
La connexion est une connexion distante, j'ai bien précisé le nom d'utilisateur ainsi que le mot de passe dans la chaîne de connexion.
A ce point la je bloque, je ne sais plus de quel côté fouiller pour trouver le problème.
Avez connaissance de quelque chose (au niveau des droits) que pgAdmin laisserait passer mais qui serait bloquant pour pgAgent ?
Dernière modification par tevrard (Mon 05 March 2018 16:45)
Hors ligne
#2 Tue 06 March 2018 09:15
Re: Requete bloquée pgAgent
Bonjour,
As tu activé les logs et regardé la présence d'un message d'erreur (connexion, requête SQL) ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Tue 06 March 2018 09:17
Re: Requete bloquée pgAgent
Bonjour,
La requête fonctionne bien lorsque lancée deans PgAdmin ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#4 Tue 06 March 2018 10:22
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requete bloquée pgAgent
Bonjour,
As tu activé les logs et regardé la présence d'un message d'erreur (connexion, requête SQL) ?
Y.
Je ne sais pas comment accéder aux logs. J'utilise juste les onglets propriétés et statistiques de pg admin qui me donnent quelques indications (mais pas de messages d'erreur).
Bonjour,
La requête fonctionne bien lorsque lancée deans PgAdmin ?
Oui la requête fonctionne bien sous pgadmin.
J'ai noté que j'avais plus de champs dans la table d'arrivée que dans la table de départ. J'ai remplacé le SELECT * par la liste de champs complète, à laquelle j'ai ajouté les champs attendus supplémentaire sous la forme NULL as monchamp
Pgadmin ne part pas en erreur sur la requête.
Pg agent bloque toujours sur ce pas.
Hors ligne
#5 Tue 06 March 2018 10:43
Re: Requete bloquée pgAgent
Bonjour,
Voici le processus :
* Dans pgAdmin, tu vas dans la section role, propriété du role que tu utilises, onglet variable, dans la liste déroulante tu cherches log_statement et tu la définie à all.
* Tu reload la configuration de pgsql (menu démarrer > postgresql > reload configuration)
* Tu fais tes requêtes, commande automisé
* tu regardes le fichier c:/Porgram File/PosggresqL/9.x/data/pg_log/XXXX.log
Quand tu as finie, tu reviens dans les propriétés de ton rôle pour définir log_statement à none ou pour le supprimer.
J'ai un doute, tu devras peut être te déconnecter et te reconnecter avec le reload du service.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#6 Tue 06 March 2018 11:58
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requete bloquée pgAgent
Yves,
Aurais tu la manip sous linux ?
Si non, je vais continuer de creuser de mon côté
(Un grand merci dans tous les cas)
Hors ligne
#7 Tue 06 March 2018 17:51
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requete bloquée pgAgent
Je bloque ici : * tu regardes le fichier c:/Porgram File/PosggresqL/9.x/data/pg_log/XXXX.log
Dans mon répertoire /var/lib/postgresql/9.1/main je ne trouve pas pg_log mais un dossier pg_clog et un autre pg_xlog. j'ai des fichiers à l'intérieur mais ils sont illisibles (encodage a priori).
A quoi est censé ressembler un log?
Je cherche bien au bon endroit?
Hors ligne
#9 Wed 07 March 2018 09:35
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Requete bloquée pgAgent
Bonjour,
Houla attention, ne TOUCHEZ PAS a pg_clog et pg_xlog: ce sont les données au coeur de votre BD.
Les fichiers de logs ne sont pas dans /var/log/postgresql par défaut sous Linux.
En fait, ils sont là ou le fichier de conf les définit, souvent pas de log par défaut.
Le parametre log_directory vous dira où est votre fichier de log.
Code:
show log_directory;
Des infos sur les logs dans PG ici: https://www.postgresql.org/docs/10/stat … gging.html
mettez-les en place et jouez un peu avec avant de passer aux requetes auto.
Sous linux, je vous invite a passer par cron pour exécuter des tâches automatiques: ca marche très bien !
Nicolas
Dernière modification par Nicolas Ribot (Wed 07 March 2018 09:41)
En ligne
#10 Wed 07 March 2018 10:03
Re: Requete bloquée pgAgent
Nicolas,
Bonjour,
Les fichiers de logs ne sont pas dans /var/log/postgresql par défaut sous Linux.
En fait, ils sont là ou le fichier de conf les définit, souvent pas de log par défaut.
Ben si dans une distrib digne de ce nom (Ubuntu et Debian) :p
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#11 Wed 07 March 2018 10:25
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requete bloquée pgAgent
Bonjour,
J'ai bien trouvé le fichier de log dans var/log/postgresql
Sur l'extrait du fichier en pièce jointe :
Les lignes 1 à 5 porte sur le pas n° 10 (le truncate) qui fini en succès
lignes 6 à 14 : pas n°11, qui fini en échec
je ne comprends pas les lignes suivantes. Les lignes 19 et 20 sont répétées constamment (toutes les 5 secondes) J'ai l'impression que leur rôle est de vérifier les planifications de tâches pour savoir si une tâche doit être lancée ou non (mais je ne suis pas sur).
Note : (et ça, ça me dépasse ...) le pas n°11 fini en échec, le pas n°12 ne se lance donc pas. Mais le pas n°11 s'effectue, je retrouve bien les lignes attendue dans la table cible du Insert Into défini dans le pas n°11.
Hors ligne
#12 Wed 07 March 2018 11:26
Re: Requete bloquée pgAgent
Bonjour,
Houla attention, ne TOUCHEZ PAS a pg_clog et pg_xlog: ce sont les données au coeur de votre BD.
Je suppose que c'est pour cela que debian (par exemple) écrit par défaut les logs de postgresql dans /var/log
Sous linux, je vous invite a passer par cron pour exécuter des tâches automatiques: ca marche très bien !
+1
Dernière modification par jmarsac (Wed 07 March 2018 11:27)
Jean-Marie
Azimut
Hors ligne
#13 Wed 07 March 2018 14:30
Re: Requete bloquée pgAgent
Le log semble indiquer que 319 lignes ont été insérées lors du pas 11 qui retourne pourtant un état d'erreur sans message associé, c'est bien le cas ?
Avez-vous regardé si vous aviez un fichier /var/log/pgagent.log
Il faudrait que pgagent soit lancé avec l'option -l2 (niveau DEBUG pour les logs) et éventuellement -s /var/log/pgagent.log
Vous pouvez rechercher un éventuel fichier de configuration dans /etc/pgagent ou dans /usr/share/pgadmin3
Jean-Marie
Azimut
Hors ligne
#14 Wed 07 March 2018 15:13
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requete bloquée pgAgent
Je dispose d'un fichier pgagent.log. Le seul contenu de ce fichier est "ERROR: Primary connection string is not valid!"
De mon côté, j'ai ajouté "END;" à la fin de ma requête, et cela me permet de terminer la procédure sans "Echec". Ma sortie me paraît cohérente.
Hors ligne