Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Mise en trace



David Tokmatchi a écrit :

Bonjour

Selon ma compréhension des documents Postgres, la mise en trace est possible uniquement sur des plates-formes Solaris à l'aide de 'dtrace'.

Question 1 :

Je voudrais savoir s'il est possible, malgré cette limitation, (sous Linux RH4u4 + Postgres 8.2.4) de mettre en trace :

 - une session

 - un utilisateur

 - une base entière

En effet j'ai des utilisateurs connectés par une application dont je n'ai pas la source. Je voudrais, au mieux repérer une session d'un utilisateur bien défini, puis sous psql de lancer une commande pour tracer ses requêtes sql, sinon tracer la base entièrement.

Vous avez compris, je fais un parallèle avec oracle où ces possibilités (et bien d'autre) existent.

Question 2 :

Dans quel répertoire sont générés les fichiers de trace ? Quel est le paramètre de l'instance qui le défini ? Faut-il traiter ces fichier traces pour voir le plan d'exécution ainsi que les statistiques sur le nombre d'enregistrement traités ?

Par avance merci

Bonjour,

Il est possible de faire générer des traces complètes de l'activité de postgres en modifiant son fichier de configuration (postgresql.conf), et notamment en décommentant les lignes :

- log_statement : valeur à 'all'.
- log_connections : valeur à 'on'.
- log_disconnections : valeur à 'on'.

Il est également possible de prefixer les lignes de log selon un format qui vous convient en ajustant le paramètrelog_line_prefix (valeurs documentées dans le fichier de conf), ce qui vous permet d'afficher des informations diverses, telles que l'heure, le nom d'utilisateur,
le nom de la base attaquée, le poste distant, l'ID de session, etc...

Quant à savoir où se trouvent, les fichiers de logs, celà dépend de la façon dont ils sont générés (redirection de la sortie err, syslog ou gestion directe par le daemon lui-même
(ceci étant également paramétré dans postgresql.conf).
Par exemple, pour ma DEBIAN, ils se trouvent dans /var/log/postgresql/

Une fois, votre configuration faite, il vous sufira de jeter un oeil (trier dans la mesure où ces options peuvent générer énormément de bruit) dans le fichier de log pour y voir les connexion, déconnexions ainsi que toutes les actions effectuées sur la base et toutes les requêtes, tout celà
s'y trouvant consigné en clair.

Espérant que ces quelques infos pourront vous être utiles.

Cordialement.

François Figarola.

--
INTERNET CONSULT
Mas Guerido
6 rue Aristide Bergès
66330 CABESTANY

Tel   04.68.66.09.29
fax   04.68.66.99.50
* francois(dot)figarola(at)i-consult(dot)fr




Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group