Vous n'êtes pas identifié(e).
Bonsoir,
J'ai installé PostgreSQL 9.1.3 sur un SLES 11 SP2 qui a été installé en français.
Afin d'avoir les messages et différentes traces de PostgreSQL en anglais, j'ai positionné la variable lc_messages à en_US.UTF8" et laissé les autres paramètres lc_* à 'fr_FR.UTF-8'.
La plupart des traces sont en anglais SAUF celle du VACUUM ??!!
INFO: vacuuming "public.my_table"
INFO: scanned index "pk_my_table" to remove 384 row versions
DÉTAIL : CPU 0.00s/0.06u sec elapsed 0.07 sec.
INFO: scanned index "my_table_rand_id_idx" to remove 384 row versions
DÉTAIL : CPU 0.00s/0.07u sec elapsed 0.07 sec.
Le mot "DETAIL" est en français, ce qui propose par la suite à pgfouine.
Est-ce que quelqu'un a déjà eu le problème et a trouvé une solution ?
Par avance merci.
Hors ligne
Jamais eu le problème. Je trouve ça un peu louche. Vous avez demandé à PostgreSQL de relire sa configuration ? et si oui, comment ?
Guillaume.
Hors ligne
Bonsoir, désolée de vous déranger encore une fois :-(
Pour vérifier la configuration, j'ai été jusqu'à arrêter et redémarrer le serveur PostgreSQL.
Je ne comprends pas que certains messages soient en anglais et d'autres en français seulement dans les traces du VACUUM ?!
Que puis-je tester à votre avis ?
Merci.
Hors ligne
On parle bien des traces du serveur ? est-ce que par hasard vous ne redirigeriez pas les traces de l'outil vacuumdb au même endroit ? car vacuumdb ne tient pas compte de la configuration serveur de lc_messages.
Guillaume.
Hors ligne
Oui, je parle bien des traces du serveur.
J'ai redirigé les logs de vacuumdb dans un fichier spécifique.
J'ai fait des essais directement sous psql, et j'obtiens exactement le même résultat, à savoir "DÉTAIL :" en français :-(
J'ai essayé de modifier sous psql les paramètres lc_* mais cela ne change rien.
Voici la configuration que j'ai :
lc_messages=en_US
lc_collate=fr_FR.UTF-8
lc_ctype=fr_FR.UTF-8
lc_monetary=fr_FR.UTF-8
lc_numeric=fr_FR.UTF-8
lc_time=fr_FR.UTF-8
client_encoding=UTF8
Hors ligne
Je viens de résoudre mon problème mais j'ai dû mal à comprendre pourquoi cela fonctionne...
J'ai vérifié les locales de mon système et voici ce que j'avais :
postgres@PostgreSQL-2:~> locale
LANG=fr_FR@euro
LC_CTYPE="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LC_NAME="fr_FR@euro"
LC_ADDRESS="fr_FR@euro"
LC_TELEPHONE="fr_FR@euro"
LC_MEASUREMENT="fr_FR@euro"
LC_IDENTIFICATION="fr_FR@euro"
LC_ALL=
J'ai positionné ma variable LC_ALL à en_US.UTF-8 :
export LC_ALL=en_US.UTF-8
Puis sous psql, j'ai lancé un VACUUM VERBOSE et là, plus de problème de traduction du mot clé "DÉTAIL :" ??!!
INFO: vacuuming "public.item"
INFO: index "pk_item" now contains 100000 row versions in 276 pages
DETAIL: 0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: "item": found 0 removable, 0 nonremovable row versions in 0 out of 1271 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
VACUUM
Auriez-vous une idée sur la corélation entre LC_ALL et les messages sous psql ?
Par avance merci.
Hors ligne
Non, pas vraiment. La langue des traces du serveur n'ont rien à voir (normalement) avec la configuration du terminal qui lance psql.
Guillaume.
Hors ligne
Ben oui, c'est bien ce que je pensais et qui m'inquiète un peu...
Hors ligne
Non, pas vraiment. La langue des traces du serveur n'ont rien à voir (normalement) avec la configuration du terminal qui lance psql.
Et pourtant c'est bien reproductible. Sur un PG9.1 configuré en_US.UTF8:
LC_MESSAGES=fr_FR.UTF8 psql -d test << EOF
show lc_messages;
VACUUM verbose;
EOF
sort
lc_messages
-------------
en_US.UTF-8
suivi de diverses lignes de la forme:
INFO: vacuuming "pg_toast.pg_toast_11523"
INFO: index "pg_toast_11523_index" now contains 0 row versions in 1 pages
DÉTAIL : 0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
Avec tout en anglais, sauf DÉTAIL avec son accent.
Je pense que c'est parce que DETAIL ne fait pas vraiment corps avec la sortie de VACUUM VERBOSE, c'est un ajout du client psql sur le niveau de cricité du message (notice,info,avertissement, etc...)
PS: mais ce sont des logs côté client, donc ce n'est pas supposé être analysé avec pgfouine?
Dernière modification par dverite (01/06/2012 17:05:08)
@DanielVerite
http://blog-postgresql.verite.pro/
En ligne
Merci d'avoir continué à investiguer.
J'ai fait de même de mon côté, et j'ai aussi reproduit le problème sur une seconde VM SLES avec le français en langue d'installation.
L'idée étant de pouvoir utiliser pgfouine, je vais me contenter de positionner la variable OS "LC_MESSAGES" au préalable.
Hors ligne
Merci d'avoir continué à investiguer.
J'ai fait de même de mon côté, et j'ai aussi reproduit le problème sur une seconde VM SLES avec le français en langue d'installation.
L'idée étant de pouvoir utiliser pgfouine, je vais me contenter de positionner la variable OS "LC_MESSAGES" au préalable.
Mais ces termes en français sont dans les logs côté client et non serveur donc en principe pgfouine n'est pas concerné.
@DanielVerite
http://blog-postgresql.verite.pro/
En ligne
En fait, lorsque les logs contiennent le mot "DÉTAIL", pgfouine_vacuum.php ne semble pas s'en sortir et les colonnes "Deleted pages" et "Removed row versions" dans le report HTML sont à zéro. Mais je n'ai pas tracé l'exécution du script pgfouine_vacuum.php car ces colonnes sont renseignés lorsque le mot "DETAIL" est bien en anglais mais je me trompe peut-être.
Hors ligne