Vous n'êtes pas identifié(e).
Merci à vous pour vos éclaircissements...
Donc, j'avance dans Pgfouine mais je ne comprend pas les erreurs ci-dessous, après exécution de pgfouine :
+ pgfouine.php -file /var/akio/db/aic/pg_log/postgresql-2011-04-12_151348.log -database akio -format html-with-graphs -report /tmp/akio/pgfouine_report.html=overall,bytype,hourly,slowest,n-mosttime,n-mostfrequent,n-slowestaverage,n-mostfrequenterrors
pgFouine did not find any valid PostgreSQL log line in your log file:
* check that PostgreSQL uses an english locale for logging (lc_messages in your postgresql.conf),
* check that you use the -logtype option (syslog, stderr) according to your log file,
* if you use syslog and log_line_prefix, check that your log_line_prefix has a trailing space,
* if you use stderr, check that your log_line_prefix is of the form '%t [%p]: [%l-1] '.
Or j'ai les variables suivantes dans mon postgrès.conf :
lc_messages = 'en_US.UTF-8'
log_destination = 'stderr'
redirect_stderr = on
log_line_prefix = '%t [%p]: [%l-1] '
Pouvez-vous m'aider ?
Merci à vous...
effectivement, je suis en 8.2 et je suis en train de tester Pgfouine sur un serveur de recette ...
Qu'est-ce qu'un nom de fichier 'sans échappement' (j'ai lu des trucs la dessus sur le paramètre log_line_prefix, mais je n'ai pas tout compris !)
Merci pour vos réponses...
Bonjour à tous...
Pourquoi quand je code : log_filename = 'postgresql.log' dans mon postgresql.conf, je me retrouve avec un fichier log qui se nomme ainsi : postgresql.log.1302527814
Bizarre non ?
Merci pour vos réponses
avec kill -int nnn
Juste une :
Le moniteur de ma database me montre un paquet de connexion résidentes en mode 'IDLE' => OK
Quand je kille ces connexions, il ne se passe rien et les connexions restent en IDLE (Je pense que c'est parce que les clients ne font plus rien !) ...
Comment killer ces connexions IDLE ?
OK merci ...
Excusez-moi Marc mais quand vous dites : 'Oui, c'est faux' , dois-je en conclure que :
oui => question 2.1
faux => Question 2.2 ?
Re-bonjour...
En regardant mon moniteur de transaction via pgAdmiIII, je vois les choses suivantes :
... PID ... debut de requete blocage requete
00002 2011/02/16 11:56:54 00004 delete from TableTOTO where donnée=2010
00003 2011/02/16 11:56:51 delete from TableTOTO where donnée=2010
00004 2011/02/16 11:56:50 delete from TableTOTO where donnée=2010
Donc une 'contention' entre mon PID 00002 et 0004 QUI BLOQUE les 3 'delete'... Cette situation a duré quelques minutes avant de se décanter => ok
Quand je regarde les verrous, je vois, dans la pid qui a bloqué '00004', des lignes qui s'accumulent avec des choses comme : ExclusiveLock, suivis de Roweclusivelock, accessSharelock etc...
Moi qui croyait que postgrès ne bloquait pas les lignes mise à jour, je suis un peu perplexe...
Pouvez-vous m'expliquer le role de ces différents locks ?
Merci d'avance...
PS : Quelle est le lien entre la 'relation' et le 'PID' ?
Merci ...
Je continue ...
1°) Comment mettre ce paramètre à Off sur 'MA' session, étant donné qu'il est présent dans le fichier postgrès.conf ?
2°) Me trompe-je si je dis que :
2.1) A ON, ce paramètre permet à l'optimiseur d'utiliser les index de 2 façons suivante : Direct et scan ?
2.2) A OFF ce paramètre ne permet pas l'index scan, maois permet l'acces direct ?
3°) Et dans l'affirmative, à quoi sert ce paramètre qui empêche l'optimiseur de chopsir lui-même son chemin d'accès ?
Merci pour vos réponses...
Bonjour à tous...
j'ai effectué quelques lectures sur ce paramètre mais je n'arrive pas vraiment à comprendre pourquoi certaine fois, il faut le mettre à OFF et d'autres à ON...
Pouvez-vous m'aider ?
PS : Que veut dire : langage plsql volatile
Merci Marc...
effectivement ma base est encodée en 'LATIN1'...
N'aurait-il pas été plus judicieux par exemple de créer la database en LATIN9 (LATIN1 avec euro et les accents !) ?
car visiblement elle n'arrive pas à comprendre tous les caractères du client...
Comment puis-je voir ce que veut dire : 0xe38090 ?
Merci d'avance...
Bonjour à tous...
j'ai aussi ce genre de message dans ma log :
2011-02-10 11:19:01 CET;databaseA;ERROR: character 0xe38090 of encoding "UTF8" has no equivalent in "LATIN1"
2011-02-10 11:19:01 CET;databaseA;ERROR: character 0xe282ac of encoding "UTF8" has no equivalent in "LATIN1"
2011-02-10 11:19:02 CET;databaseA;ERROR: character 0xe2808f of encoding "UTF8" has no equivalent in "LATIN1"
2011-02-10 11:19:02 CET;databaseA;ERROR: character 0xc593 of encoding "UTF8" has no equivalent in "LATIN1"
Qu'est-ce que cela veut dire et comment trouver l'encodage de ma database (j'ai recherché sur postgrès.conf et je n'ai pas trouvé, à part les lc_messages, lc_monetary, lc_numeric et lc_time qui ont la valeur : en_US.UTF-8)..
Pouvez-vous m'expliquer ?
Merci Marc...
Merci je vais le escape_string_warning à off ...
mais ce que je n'arrive pas à comprendre c'est qu'il crache quand même alors qu'apparemment, il n'y a pas de thread actifs ...
Bizarre hein ?
Bonsoir...
Ma log 'vomit' toutes les 5 secondes environ, des messages de type :
2011-02-09 16:29:05 CET;DatabaseA;WARNING: nonstandard use of \' in a string literal at character 1075
2011-02-09 16:29:05 CET;DatabaseA;HINT: Use '' to write quotes in strings, or use the escape string syntax (E'...').
ce midi alors qu'il n'y avait pas de transaction active (toutes en IDLE) sur le serveur, la log continuait à cracher ces deux lignes...
Qu'est-ce que cela peut bien vouloir dire ?
Avec vous une idée ?
Bonjour ...
que se passe t'il quand, sur une même table, au même moment, il y a :
- vacuum analyse TableA
- delete from tableA where
Je demande ça car actuellement mon delete est bloqué (la table ne fait que 60 enreg) depuis 3/4 d"'heure...
Merci pour vos réponses...
Merci pour vos réponses...
Imaginons plusieurs 'Select * ... ORDER BY toto DESC LIMIT 1' simultanés => OK
Si tous les select prennent 500 méga de mémoire, il se peut que le serveur soit saturé très vite non ?
Ok mais si c'est un select * from tableA avec un ORDER BY toto DESC LIMIT OFFSET 1cela bloque t'il ?
Imaginons un traitement qui effectue des inserts sur la tableA => OK
Imaginons qu'au même moment j'envoie un 'select * from tableA' => OK
Qu'est-ce qu'il se passe ?
Merci Marc pour votre réponse...
1°) Chez nous, la work_mem est à 500 méga ... cela veut-il dire que chaque process prend au minimum, 500 méga de mémoire à lui tout seul ?
2°) Comment faire un select non bloquant, qui lit donc les 'dirt' données ?
Re-bonjour...
J'ai un prédicat qui consomme énormément car il attaque un index bidon en prod => OK
Cet ordre effectue un SELECT avec un ORDER BY toto DESC LIMIT 1 => OK
J'ai trouvé comment l'optimiser avec le rajout d'un index mais j'ai une question à vous poser :
Est-il possible d'agrandir la zone de tri de Postgrès ? Et quelle nom porte t'elle ?
Quelle taille minimale doit-on lui donner ?
Mes question sont un peu vagues mais j'aimerais avoir l'équivalent des pools de tri d'oracle ...
Merci pour vos réponses...
et enfin
Que représente le witdh=12
Et puis aussi ...
Quand dans un explain vous avez les valeurs suivantes :
" -> Index Scan Backward using stat_threads_pkey on stat_threads (cost=0.00..570924.00 rows=1177515 width=12)"
Chez postrgrès, que représente le coast ?
Je reprends pour quelques éclaircissements sur les index :
Quand vous avez ce type de valeurs :
Parcours d'index : 5521 => l'index a été parcouru 5521 fois => Ok mais... 1°) Depuis le dernier analyze/vacuum full ?
Lignes d'index lues : 47522 => 2°) Est-ce le nbr de lignes parcourues cumulées par les 5521 fois ou l'index a été retenu ?
Ligne d'index récupérées : nnn => 3°) idem que ligne d'index lues mais pour les lignes récupérées ?
4°) Quand on a un parcours d'index > zéro et un nombre de lignes d'index récupérées = à zéro => Qu'est-ce que cela veut dire ?
5°) Ces valeurs sont-elles remise à zéros après un vacuum ou un Analyze
Merci pour vos réponses...