Re: Mise en trace

From: François Figarola <francois(dot)figarola(at)i-consult(dot)fr>
To: David Tokmatchi <david(dot)tokmatchi(at)gmail(dot)com>, pgsql-fr <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Mise en trace
Date: 2008-01-10 09:12:09
Message-ID: 4785E169.6000109@i-consult.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Stephane Bortzmeyer 2008-01-10 09:45:46 Re: Posgresql
Previous Message David Tokmatchi 2008-01-10 08:19:45 Mise en trace