root/traduc/trunk/divers/annotated_postgresql_conf.xml

Revision 583, 116.2 kB (checked in by sas, 2 years ago)

Correctifs drop role -> alter role dans les refs de alter user

Line 
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" >
3
4 <article id="postgresqlconf" lang="fr">
5  <articleinfo>
6   <title>Fichier postgresql.conf et guide de configuration utilisateur générale
7    (<foreignphrase>Global User Configuration (GUC)</foreignphrase>) annotés</title>
8   <subtitle>PostgreSQL 8.1.x</subtitle>
9  </articleinfo>
10
11 <sect1>
12 <title>Emplacement des fichiers</title>
13
14 <table>
15   <title>Fichier postgresql.conf et guide de configuration utilisateur générale
16   (<foreignphrase>Global User Configuration (GUC)</foreignphrase>) annotés</title>
17 <tgroup cols="7" align="left" colsep="1" rowsep="1">
18
19 <thead>
20  <row>
21   <entry>Paramètre</entry>
22   <entry>Échelle</entry>
23   <entry>Valeur par défaut</entry>
24   <entry>Positionné au</entry>
25   <entry>-o</entry>
26   <entry>Ce que dit la documentation</entry>
27   <entry>Commentaires</entry>
28  </row>
29 </thead>
30
31 <tbody>
32  <row>
33   <entry>data_directory</entry>
34   <entry>Répertoire</entry>
35   <entry>ConfigDir</entry>
36   <entry>Démarrage</entry>
37   <entry></entry>
38   <entry>
39   Répertoire de stockage des données
40   </entry>
41   <entry>
42   Ces nouveaux paramètres de configuration des emplacements de fichiers facilitent l'administration
43   d'une installation de PostgreSQL lorsque les fichiers de configuration et de surveillance
44   sont séparés de la base, généralement dans un but d'ajustement à une spécification particulière
45   du fichier d'administration ou pour automatiser la conduite de tests avec plusieurs configurations.
46   Lorsque ce paramètre est utilisé, seul l'emplacement du fichier postgresql.conf doit être
47   précisé au démarrage du postmaster (à l'aide de -D ou PGDATA). Cette approche est supérieure
48   à l'utilisation de lien symbolique, unique option jusque là disponible.
49   </entry>
50  </row>
51  <row>
52   <entry>config_file</entry>
53   <entry>Nom de fichier</entry>
54   <entry>ConfigDir/postgresql.conf</entry>
55   <entry>Démarrage</entry>
56   <entry></entry>
57   <entry>
58    Fichier de configuration principal du serveur (initialement
59    <filename>postgresql.conf</filename>).
60   </entry>
61   <entry></entry>
62  </row>
63  <row>
64   <entry>hba_file</entry>
65   <entry>Nom de fichier</entry>
66   <entry>ConfigDir/pg_hba.conf</entry>
67   <entry>Démarrage</entry>
68   <entry></entry>
69   <entry>
70    Fichier de configuration pour l'authentification par hôte
71    (habituellement pg_hba.conf).
72   </entry>
73   <entry></entry>
74  </row>
75  <row>
76   <entry>ident_file</entry>
77   <entry>Nom de fichier</entry>
78   <entry>ConfigDir/pg_ident.conf</entry>
79   <entry>Démarrage</entry>
80   <entry></entry>
81   <entry>
82   Fichier de configuration pour l'authentification par <emphasis>ident</emphasis>
83   (habituellement pg_ident.conf).
84   </entry>
85   <entry></entry>
86  </row>
87  <row>
88   <entry>external_pid_file</entry>
89   <entry>Nom de fichier</entry>
90   <entry>Aucun</entry>
91   <entry>Démarrage</entry>
92   <entry></entry>
93   <entry>
94    Fichier additionnel d'identifiant de processus (PID) que le
95   postmaster crée pour les programmes d'administration serveur.
96   </entry>
97   <entry>
98   Ce paramètre est utile pour les programmes d'administration et les interfaces utilisateur
99   graphiques qui s'attendent à trouver le PID de PostgreSQL à un emplacement particulier, en général
100   /var. Ce n'est qu'une copie du PID, en aucun cas le fichier utilisé par pg_ctl au démarrage.
101   Ce dernier est situé dans le répertoire des données.
102   </entry>
103  </row>
104 </tbody>
105 </tgroup>
106 </table>
107
108 </sect1>
109
110 <sect1>
111 <title>Connexions et authentification</title>
112
113 <sect2>
114 <title>Paramètres de connexion</title>
115
116 <table>
117 <tgroup cols="7" align="left" colsep="1" rowsep="1">
118
119 <thead>
120  <row>
121   <entry>Paramètre</entry>
122   <entry>Échelle</entry>
123   <entry>Valeur par défaut</entry>
124   <entry>Positionné au</entry>
125   <entry>-o</entry>
126   <entry>Ce que dit la documentation</entry>
127   <entry>Commentaires</entry>
128  </row>
129 </thead>
130
131 <tbody>
132  <row>
133   <entry>listen_addresses</entry>
134   <entry></entry>
135   <entry>localhost</entry>
136   <entry>Démarrage</entry>
137   <entry>-h x -i</entry>
138   <entry>
139   Adresse(s) TCP/IP sur la(es)quelle(s) le serveur écoute les connexions en provenance
140   des clients. La valeur a la forme d'une liste de noms d'hôte ou d'adresses IP séparés par des
141   virgules. La valeur spéciale '*' correspond à toutes les interfaces IP disponibles.
142   Si la liste est vide, le serveur n'écoute aucune interface IP. Dans ce cas, seules les
143   sockets de domaine UNIX peuvent être utilisées pour se connecter. La valeur par défaut est
144   'localhost', ce qui n'autorise que les connexions &laquo;&nbsp;loopback&nbsp;&raquo;.
145   </entry>
146   <entry>
147   <para>
148   Ce paramètre remplace les deux paramètres &laquo;&nbsp;tcp_ip&nbsp;&raquo; et
149   &laquo;&nbsp;virtual_host&nbsp;&raquo; de la version 7.4. La plupart des utilisateurs peuvent
150   utiliser '*' pour écouter toutes les adresses, ou laisser 'localhost' pour une machine sécurisée.
151   À la différence des versions précédentes, la valeur par défaut autorise désormais les connexions
152   TCP/IP sur 127.0.0.1. Le serveur web local peut ainsi se connecter sans paramétrage particulier.
153   </para>
154   <para>
155   Pour un accès sécurisé, ce paramètre doit être modifié <emphasis>après</emphasis>
156   la configuration du fichier pg_hba.conf.
157   </para>
158   </entry>
159  </row>
160  <row>
161   <entry>port</entry>
162   <entry>129 à 32768</entry>
163   <entry>5432</entry>
164   <entry>Démarrage</entry>
165   <entry>-p #</entry>
166   <entry>
167   Le port TCP sur lequel le serveur écoute. Ce port est utilisé pour toutes les
168   adresses IP que le serveur écoute.
169   </entry>
170   <entry>
171   <para>
172   Un port alternatif est essentiellement utilisé lorsque plusieurs serveurs
173   postgreSQL tournent sur la même machine, pendant une mise à niveau par exemple.
174   </para>
175   <para>
176   Une alternative à cette configuration est l'utilisation de l'option de compilation
177   &laquo;&nbsp;--with-port&nbsp;&raquo;.
178   Cette option fixe le port alternatif dans tous les binaires évitant ainsi de
179   préciser l'option -p pour tous les clients.
180   </para>
181   </entry>
182  </row>
183  <row>
184   <entry>max_connections</entry>
185   <entry>2 à 262143</entry>
186   <entry>100</entry>
187   <entry>Démarrage</entry>
188   <entry>-N #</entry>
189   <entry>
190   Nombre maximum de connexions concurrentes à un serveur de bases de données.
191   Typiquement 100 par défaut, il peut être réduit si la configuration du noyau
192   l'impose (initdb tente de le déterminer).
193   </entry>
194   <entry>
195   Ce paramètre doit être maintenu près du minimum requis par l'application.
196   En effet, chaque connexion nécessite des ressources
197   système significatives. Les applications web qui servent des centaines
198   d'utilisateurs peuvent utiliser une réserve de connexions
199   (<foreignphrase>connection pool</foreignphrase>) pour réduire le nombre
200   de connexions demandées. L'augmentation du paramètre demande un ajustement des
201   limites mémoire du système.
202   </entry>
203  </row>
204  <row>
205   <entry>superuser_reserved_connections</entry>
206   <entry>0 à max_connections - 1</entry>
207   <entry>2</entry>
208   <entry>Démarrage</entry>
209   <entry></entry>
210   <entry>
211   Nombre de connexions réservées aux superutilisateurs PostgreSQL et au démon autovacuum. Au plus
212   max_connections connexions peuvent être actives simultanément. Lorsque
213   le nombre de connexions concurrentes atteint max_connections moins
214   superuser_reserved_connections, seules les connexions de superutilisateurs
215   sont encore autorisées.
216   </entry>
217   <entry>
218   Cela protège l'accès des superutilisateurs en cas d'engorgement de la base.
219   Ce paramètre ne doit être positionné à 0 que lorsqu'il est certain que
220   toutes les connexions ne sont jamais utilisées. (NDR&nbsp;: Je positionne
221   souvent ce paramètre à 1 puisque je ne me connecte en superutilisateur
222   à la base qu'en cas de problème.) Le paramétrage à 2 par défaut prévoit le
223   cas d'utilitaire administratif connecté en permanence, autovacuum par exemple.
224   </entry>
225  </row>
226  <row>
227   <entry>unix_socket_directory</entry>
228   <entry></entry>
229   <entry>''</entry>
230   <entry>Démarrage</entry>
231   <entry>-k $</entry>
232   <entry>
233   Répertoire du socket de domaine Unix sur lequel le serveur écoute
234   les connexions de clients. /tmp par défaut, mais le paramètre
235   peut être modifié à la compilation.
236   </entry>
237   <entry>
238   Aucune recommandation particulière.
239   </entry>
240  </row>
241  <row>
242   <entry>unix_socket_group</entry>
243   <entry></entry>
244   <entry>''</entry>
245   <entry>Démarrage</entry>
246   <entry></entry>
247   <entry>
248   Groupe propriétaire du socket de domaine Unix. (L'utilisateur propriétaire
249   de ce socket est toujours celui qui exécute le serveur.) Combiné avec l'option
250   UNIX_SOCKET_PERMISSIONS, ce paramètre peut être utilisé comme mécanisme
251   supplémentaire de contrôle des accès pour ce type de socket. Par défaut,
252   c'est une chaîne vide, donc le groupe par défaut de l'utilisateur.
253   </entry>
254   <entry>
255   Aucune recommandation particulière.</entry>
256  </row>
257  <row>
258   <entry>unix_socket_permissions</entry>
259   <entry></entry>
260   <entry>0777</entry>
261   <entry>Démarrage</entry>
262   <entry></entry>
263   <entry>
264   <para>
265   Droits d'accès au socket de domaine Unix. Les sockets de domaine Unix
266   utilisent le système habituel de gestion des droits des systèmes de
267   fichier Unix. La valeur de l'option doit être précisée sous la forme numérique
268   acceptée par les outils système chmod et umask. L'utilisation du format
269   octal impose un 0 (zéro) en début de nombre.
270   </para>
271   <para>
272   Les droits par défaut sont 0777, tout le monde peut se connecter.
273   Des alternatives acceptables sont 0770 (droits pour l'utilisateur
274   et le groupe, voir aussi unix_socket_group), et 0700 (utilisateur seul).
275   En général, dans le cas d'une socket de domaine Unix, seul le droit
276   d'écriture importe. Il n'y a donc aucun intérêt à positionner ou supprimer
277   les droits d'écriture ou de lecture.
278   </para>
279   </entry>
280   <entry>
281   Aucune recommandation particulère.</entry>
282  </row>
283  <row>
284   <entry>bonjour_name</entry>
285   <entry></entry>
286   <entry>''</entry>
287   <entry>Démarrage</entry>
288   <entry></entry>
289   <entry>
290   Nom du diffuseur Bonjour. La valeur par défaut, indiquée par une chaîne
291   vide '', est le nom de l'ordinateur. Cette option n'a d'intérêt que pour les
292   plateformes qui supportent Rendezvous.
293   </entry>
294   <entry>
295   Aucune recommandation particulière.
296   </entry>
297  </row>
298  <row>
299   <entry>tcp_keepalives_idle</entry>
300   <entry></entry>
301   <entry>0</entry>
302   <entry>Démarrage</entry>
303   <entry></entry>
304   <entry>
305    Indique l'interval (en secondes) entre l'envoi de deux instructions
306    &laquo;&nbsp;d'entretien&nbsp;&raquo; (keepalive) sur une connexion autrement
307    inactive. Valable pour les systèmes qui acceptent l'option de socket
308    <symbol>TCP_KEEPIDLE</symbol>.
309    Une valeur nulle (0) impose l'utilisation de la valeur par défaut du système. Si
310    <symbol>TCP_KEEPIDLE</symbol> n'est pas supporté, ce paramètre doit être
311    positionné à 0. Cette option est sans effet lors de connexions par la socket
312    de domaine UNIX.
313   </entry>
314   <entry>
315   </entry>
316  </row>
317  <row>
318   <entry>tcp_keepalives_interval</entry>
319   <entry></entry>
320   <entry>0</entry>
321   <entry>Démarrage</entry>
322   <entry></entry>
323   <entry>
324    Indique le délai d'attente (en secondes) d'une réponse à un keepalive avant
325    retransmission. Valable pour les systèmes qui acceptent l'option de socket
326    <symbol>TCP_KEEPINTVL</symbol>. Une valeur nulle (0) impose l'utilisation de
327    la valeur par défaut du système. Si <symbol>TCP_KEEPINTVL</symbol> n'est pas
328    supporté, ce paramètre doit être positionné à 0. Cette option est sans effet
329    lors de connexions par la socket de domaine UNIX.
330   </entry>
331   <entry>
332   </entry>
333  </row>
334  <row>
335   <entry>tcp_keepalives_count</entry>
336   <entry></entry>
337   <entry>0</entry>
338   <entry>Démarrage</entry>
339   <entry></entry>
340   <entry>
341    Indique le nombre de keepalives qui peuvent être perdus avant de considérer
342    la connexion perdue. Valable sur les système qui acceptent l'option de socket
343    <symbol>TCP_KEEPCNT</symbol>. Une valeur nulle (0) impose l'utilisation de
344    la valeur par défaut du système. Si <symbol>TCP_KEEPCNT</symbol> n'est pas
345    supporté, ce paramètre doit être positionné à 0. Cette option est sans
346    effet lors de connexions par la socket de domaine UNIX.
347   </entry>
348   <entry>
349   </entry>
350  </row>
351 </tbody>
352 </tgroup>
353 </table>
354
355 </sect2>
356
357 <sect2>
358 <title>Securité et authentification</title>
359
360 <table>
361 <title>Securité et authentication (Fichier postgresql.conf et guide de configuration utilisateur générale (<foreignphrase>Global User Configuration (GUC)</foreignphrase>) annotés)</title>
362 <tgroup cols="7" align="left" colsep="1" rowsep="1">
363
364 <thead>
365  <row>
366   <entry>Paramètre</entry>
367   <entry>Échelle</entry>
368   <entry>Valeur par défaut</entry>
369   <entry>Positionné au</entry>
370   <entry>-o</entry>
371   <entry>Ce que dit la documentation</entry>
372   <entry>Commentaires</entry>
373  </row>
374 </thead>
375
376 <tbody>
377  <row>
378   <entry>authentication_timeout</entry>
379   <entry>1-600 sec</entry>
380   <entry>600</entry>
381   <entry>Rechargement</entry>
382   <entry></entry>
383   <entry>
384   Temps maximum laissé à un client pour réussir l'authentification, en secondes.
385   Si un client potentiel n'a pas terminé la séquence d'authentification
386   pendant ce temps, le serveur met fin à la connexion. Cela permet
387   d'éviter qu'un client bloqué n'occupe indéfiniment une connexion.
388   </entry>
389   <entry>
390   Le temps d'attente peut être réduit s'il s'agit d'exécuter un site web
391   à grand traffic. Afin d'éviter une indisponibilité non souhaitée,
392   ou une attente trop longue lorsque le serveur est chargé, il peut
393   être utile de faire correspondre ce temps d'attente avec celui de l'intergiciel.
394   </entry>
395  </row>
396  <row>
397   <entry>ssl</entry>
398   <entry>true, false</entry>
399   <entry>false</entry>
400   <entry>Démarrage</entry>
401   <entry>-l</entry>
402   <entry>Active les connexions SSL</entry>
403   <entry>
404   SSL est une alternative chiffrée à l'accès direct au port TCP/IP, nécessaire
405   pour les clients accédant à des données sécurisées, en particulier à travers
406   un réseau sans fil. PostgreSQL envoie les requêtes et les données en texte,
407   même lors de l'utilisation d'un mot de passe chiffré. SSL peut être difficile
408   à configurer et tous les clients ne supportent pas l'accès SSL.
409   </entry>
410  </row>
411  <row>
412   <entry>password_encryption</entry>
413   <entry>true, false</entry>
414   <entry>true</entry>
415   <entry>Exécution</entry>
416   <entry></entry>
417   <entry>
418   Détermine le chiffrement du mot de passe lorsque ni ENCRYPTED ni UNENCRYPTED
419   ne sont précisés lors de l'indication d'un mot de passe avec les commandes
420   <ulink url="http://docs.postgresqlfr.org/8.1/sql-createuser.html">CREATE USER</ulink>
421   et <ulink url="http://docs.postgresqlfr.org/8.1/sql-alteruser.html">ALTER USER</ulink>.
422   </entry>
423   <entry>
424   Il est préférable de laisser la valeur à <foreignphrase>true</foreignphrase> (vrai),
425   à la fois dans le fichier de configuration et à la connexion. Il n'y a quasiment
426   jamais de raison de ne pas chiffrer les mots de passe des utilisateurs de la base de
427   données.
428   </entry>
429  </row>
430  <row>
431   <entry>krb_server_keyfile</entry>
432   <entry></entry>
433   <entry>''</entry>
434   <entry>Démarrage</entry>
435   <entry></entry>
436   <entry>
437   Positionne l'implantation du fichier de clés du serveur Kerberos.
438   </entry>
439   <entry>
440   Utilisé uniquement pour l'authentification Kerberos des utilisateurs.
441   </entry>
442  </row>
443  <row>
444   <entry>krb_srvname</entry>
445   <entry></entry>
446   <entry>''</entry>
447   <entry>Démarrage</entry>
448   <entry></entry>
449   <entry>Positionne le nom du service Kerberos.</entry>
450   <entry>
451   </entry>
452  </row>
453  <row>
454   <entry>krb_server_hostname</entry>
455   <entry></entry>
456   <entry>''</entry>
457   <entry>Démarrage</entry>
458   <entry></entry>
459   <entry>
460   <para>
461    Positionne la partie nom d'hôte du service principal. En combinaison avec
462    <varname>krb_srvname</varname>, il est utilisé pour engendrer le service
463    principal complet, c'est-à-dire
464    <varname>krb_srvname</varname><literal>/</literal><varname>krb_server_hostname</varname><literal>@</literal>REALM.
465   </para>
466   <para>
467    En l'absence de précision, la valeur par défaut est le nom d'hôte du serveur.
468   </para>
469   </entry>
470   <entry>
471   </entry>
472  </row>
473  <row>
474   <entry>krb_caseins_users</entry>
475   <entry></entry>
476   <entry>''</entry>
477   <entry>Démarrage</entry>
478   <entry></entry>
479   <entry>
480    Règle la sensibilité à la casse des noms d'utilisateur Kerberos. La valeur
481    par défaut est <literal>off</literal> (sensibilité à la casse).
482   </entry>
483   <entry>
484   </entry>
485  </row>
486  <row>
487   <entry>db_user_namespace</entry>
488   <entry>true, false</entry>
489   <entry>false</entry>
490   <entry>Rechargement</entry>
491   <entry></entry>
492   <entry>
493   Lorsque cette option est activée, les utilisateurs doivent être créés comme
494   nom_utilisateur@nom_base. Lorsque le nom d'utilisateur est fourni par un client,
495   @ et le nom de la base sont ajoutés au nom de l'utilisateur.
496   C'est ce nom d'utilisateur, dépendant d'une base de données, qui est
497   ensuite recherché par le serveur. Lors de la création dans l'environnement
498   SQL d'utilisateurs dont le nom contient @, il est nécessaire de placer le
499   nom de l'utilisateur entre des guillemets simples.
500   </entry>
501   <entry>
502   Cette option prend en charge les installations (telles que les FAI)
503   qui nécessitent des utilisateurs définis par base de données. C'est
504   assez contraignant, et cela devrait être supprimé lorsqu'une meilleure
505   solution sera créée. Il est ainsi préférable de ne pas utiliser cette option
506   lorsqu'elle n'est pas vitale.
507   </entry>
508  </row>
509 </tbody>
510 </tgroup>
511 </table>
512
513 </sect2>
514
515 </sect1>
516
517 <sect1>
518 <title>Utilisation des ressources</title>
519
520 <sect2>
521 <title>Mémoire</title>
522
523 <note>
524  <para>
525   Augmenter la valeur de la plupart des paramètres suivants
526   oblige à modifier les options du noyau du système d'exploitation
527   pour augmenter la mémoire alloué à un processus ou à un utilisateur.
528   La documentation en ligne fournit des <ulink
529   url="http://docs.postgresqlfr.org/8.1/kernel-resources.html">informations sur
530   les commandes à utiliser pour de nombreux systèmes d'exploitation</ulink>. Sauf indication
531   contraire, la plupart de ces options s'additionnent pour déterminer
532   la quantité totale de mémoire utilisée par PostgreSQL.
533  </para>
534 </note>
535
536 <table>
537 <tgroup cols="7" align="left" colsep="1" rowsep="1">
538
539 <thead>
540  <row>
541   <entry>Paramètre</entry>
542   <entry>Échelle</entry>
543   <entry>Valeur par défaut</entry>
544   <entry>Positionné au</entry>
545   <entry>-o</entry>
546   <entry>Ce que dit la documentation</entry>
547   <entry>Commentaires</entry>
548  </row>
549 </thead>
550
551 <tbody>
552  <row>
553   <entry>shared_buffers</entry>
554   <entry>16 à 262143</entry>
555   <entry>1000</entry>
556   <entry>
557   Démarrage
558   </entry>
559   <entry>-B x</entry>
560   <entry>
561   Positionne le nombre de tampons de mémoire partagée utilisé par le
562   serveur de bases de données. Le minimum est 2 X max_connections.
563   La valeur par défaut est généralement 1000 mais elle peut être
564   inférieure si la configuration du noyau l'impose (ce qu'initdb détermine).
565   Chaque tampon représente 8192 octets, à moins qu'une valeur
566   différente de BLCKSZ n'ait été choisie à la compilation. La valeur
567   minimale est de 16 et de deux fois la valeur de max_connections.
568   Néanmoins, un paramétrage significativement supérieur au minimum
569   est souvent nécessaire pour assurer des performances satisfaisantes.
570   En production, il est recommandé d'utiliser une valeur de quelques
571   milliers.
572   </entry>
573   <entry>
574   <para>
575   Le paramétrage de shared_buffers nécessite une discussion bien plus complète
576   que ne l'autorise la place ici disponible. On peut se référer à d'autres
577   articles sur le sujet.
578   </para>
579   <para>
580   Quelques règles empiriques&nbsp;:
581   Sur un serveur PostgreSQL dédié, une valeur convenable se situe en général entre
582   1&nbsp;000 et 50&nbsp;000 (8Mo et 400Mo). Les facteurs qui incitent à augmenter
583   la valeur sont des connexions plus nombreuses, des parties actives de la base
584   plus grandes, des requêtes longues et complexes, et des grandes tables. La
585   RAM disponible limite le ombre maximum de shared_buffers&nbsp;; 1/3 de la RAM
586   disponible est la limite maximale à utiliser.
587   </para>
588   </entry>
589  </row>
590  <row>
591   <entry>temp_buffers</entry>
592   <entry></entry>
593   <entry>1000</entry>
594   <entry>Exécution</entry>
595   <entry></entry>
596   <entry>
597   <para>
598    Positionne le nombre maximum de tampons temporaires utilisés par chaque
599    session de la base. Ce sont des tampons spécifiques à la session utilisés
600    uniquement pour accéder aux tables temporaires. La valeur par défaut est
601    1&nbsp;000. Le paramètre peut être modifié au cours de la session, tant
602    qu'aucune table temporaire n'a été utilisée&nbsp;; toute tentative ultérieure
603    n'aura aucun effet sur cette session.
604   </para>
605   <para>
606    Une session alloue les tampons temporaires nécessaires dans la limite de
607    <varname>temp_buffers</varname>. Positionner une grande valeur
608    pour des sessions qui ne nécessitent en fait que peu de tampons temporaires
609    ne coûte qu'un descripteur de tampon, soit 64 octets, par incrément de
610    <varname>temp_buffers</varname>. Toutefois, un tampon utilisé consomme
611    8&nbsp;192 octets (ou, en général, <symbol>BLCKSZ</symbol> octets).
612   </para>
613   </entry>
614   <entry>
615   </entry>
616  </row>
617  <row>
618   <entry>max_prepared_transactions</entry>
619   <entry></entry>
620   <entry>5</entry>
621   <entry>Démarrage</entry>
622   <entry></entry>
623   <entry>
624   <para>
625    Positionne le nombre maximum de transactions pouvant être simultanément
626    <quote>préparées</quote>. Positionner ce paramètre à 0 désactive la
627    fonctionnalité des transactions préparées.
628   </para>
629   <para>
630    Lorsque les transactions préparées ne sont pas utilisées, ce paramètre peut
631    être positionné à 0. Lorsqu'elles sont utilisées,
632    <varname>max_prepared_transactions</varname> est positionnée à une valeur au
633    minimum égale à max_connections, afin d'éviter les erreurs dans la phase
634    de préparation.
635   </para>
636   <para>
637    L'augmentation de ce paramètre peut obliger
638    <productname>PostgreSQL</productname> à réclamer plus de mémoire partagée
639    <systemitem class="osname">System V</systemitem> que la configuration par
640    défaut du système n'en autorise.
641   </para>
642   </entry>
643   <entry>
644   </entry>
645  </row>
646  <row>
647   <entry>
648   work_mem
649   </entry>
650   <entry>64 à Int Max</entry>
651   <entry>1024</entry>
652   <entry>
653   Exécution
654   </entry>
655   <entry>-S #</entry>
656   <entry>
657   <para>
658   Précise la quantité de mémoire utisable par les opérations de tri interne et
659   les tables de hachage avant d'utiliser des fichiers temporaires. La valeur
660   est indiquée en Ko, la valeur par défaut est 1024 Ko (soit 1 Mo).
661   En cas de requête complexe, de nombreuses opérations de tri ou de hachage
662   peuvent s'exécuter en parallèle&nbsp;; chacune peut utiliser la quantité
663   de mémoire indiquée par la valeur de ce paramètre avant de commencer à
664   utiliser des fichiers temporaires. De plus, de nombreuses sessions
665   peuvent effectuer ces opérations en parallèle. La mémoire totale
666   utilisée peut être plusieurs fois la valeur de work_mem&nbsp;; il faut
667   en tenir compte lors du choix de la valeur. Les opérations de tri sont
668   utilisées par ORDER BY, DISTINCT et les jointures. Les tables de hachage
669   sont utilisées dans les jointures de hachage, les aggrégations par hachage
670   et la résolution par hachage des sous-requêtes IN.
671   </para>
672   </entry>
673   <entry>
674   <para>
675   À l'origine appelé sort_mem, le paramètre a été renommé pour refléter
676   l'extension de son rôle au-delà des simples tris.
677   </para>
678   <para>
679   work_mem est un compromis. Une plus grande valeur est utilisée pour&nbsp;: les
680   bases de données volumineuses, les requêtes complexes, une grande quantité de
681   RAM disponible. Une plus petite valeur est recherchée pour&nbsp;: une faible
682   quantité de RAM ou de nombreux accès concurrents. Trouver le bon compromis
683   peut s'avérer délicat.
684   </para>
685   <para>
686   Une autre façon d'ajuster cette valeur consiste à surveiller les fichiers
687   temporaires de PostgreSQL (dans PGDATA/base/OID_BASE/pgsql_tmp) et d'accroître
688   la valeur de sort_mem si de nombreuses requêtes permutent avec ces fichiers.
689   </para>
690   <para>
691   Il ne faut pas oublier que ce paramètre peut être positionné par connexion.
692   Ainsi, dans le cas où seules quelques requêtes très complexes sont à
693   exécuter, la valeur peut être augmentée avant leur exécution, mais conservée
694   basse pour les autres connexions.
695   </para>
696   </entry>
697  </row>
698  <row>
699   <entry>
700   maintenance_work_mem
701   </entry>
702   <entry>1024 à Int Max</entry>
703   <entry>8192</entry>
704   <entry>
705   Exécution
706   </entry>
707   <entry></entry>
708   <entry>
709   Indique la quantité maximale de mémoire à utiliser dans les opérations
710   de maintenance, telles que VACUUM, CREATE INDEX et ALTER TABLE ADD FOREIGN KEY.
711   La valeur est précisée en Ko. La valeur par défaut est 16384 Ko
712   (16 Mo). Puisque seule une de ces opérations peut être effectuée à la fois
713   au cours d'une session, et qu'en général peu se produisent simultanément
714   sur une même installation, il n'y a aucun risque à positionner ce paramètre
715   à une valeur nettement supérieure à celle de work_mem. Une valeur élevée
716   peut améliorer les performances du nettoyage (vacuum) et de la restauration
717   des sauvegardes.
718   </entry>
719   <entry>
720   <para>
721   À l'origine appelé vacuum_mem, le paramètre a été renommé pour refléter l'extension
722   de son rôle à l'allocation de mémoire lors du chargement des index.
723   </para>
724   <para>
725   La valeur par défaut est généralement trop basse. Il en résulte un blocage
726   des E/S du système par les opérations de VACUUM et de créations d'index et/ou
727   des blocages d'objets pendant la permutation. Une valeur convenable est généralement
728   comprise entre 32&nbsp;Mo et 256&nbsp;Mo&nbsp;; cela dépend autant de la RAM
729   disponible que du plus grand volume (attendu) des objets de la base.
730   </para>
731   <para>
732   Tout comme work_mem, ce paramètre peut être fixé à l'exécution, ce qui permet
733   de l'accroître temporairement lors du chargement d'index ou de la création
734   de clés sur des tables volumineuses.
735   </para>
736   </entry>
737  </row>
738  <row>
739   <entry>max_stack_depth</entry>
740   <entry></entry>
741   <entry></entry>
742   <entry></entry>
743   <entry></entry>
744   <entry>
745   Indique la profondeur maximale que peut atteindre la pile d'exécution du serveur
746   en toute sécurité. Le réglage idéal du paramètre correspond à la limite réelle
747   de la pile imposée par le noyau (positionné par ulimit -s ou équivalent), diminué
748   d'une marge de sécurité d'un Mo environ. Cette marge de sécurité est nécessaire
749   parce que la profondeur de la pile n'est pas vérifiée pour chaque routine du
750   serveur, mais uniquement pour les routines potentiellement récursives, telles
751   que les évaluations d'expressions. Une valeur plus grande
752   que la limite réelle du noyau peut conduire une fonction récursive à
753   occasionner un plantage d'un processus serveur. La valeur par défaut de 2048 Ko
754   (2 Mo) est résolument basse et ne risque pas d'occasionner un plantage. Néanmoins,
755   elle peut s'avérer trop petite pour autoriser l'exécution de fonctions complexes.
756   </entry>
757   <entry>
758   <para>
759   Le paramètre s'est appelé max_expr_depth et son unité ne correspondait pas
760   à celle utilisée par la plupart des noyaux systèmes.
761   </para>
762   <para>
763   En cas de dépassement de ce paramètre, un message d'erreur spécifique est
764   produit. À ce moment-là, il peut être augmenté
765   <emphasis>avec précaution</emphasis>&nbsp;; de nombreux systèmes d'exploitation
766   ont des limites aussi basses que 8&nbsp;Mo.
767   </para>
768   </entry>
769  </row>
770 </tbody>
771 </tgroup>
772 </table>
773
774 </sect2>
775
776 <sect2>
777 <title>Carte de l'espace libre (<foreignphrase>Free Space Map</foreignphrase>)</title>
778
779 <table>
780 <tgroup cols="7" align="left" colsep="1" rowsep="1">
781
782 <thead>
783  <row>
784   <entry>Paramètre</entry>
785   <entry>Échelle</entry>
786   <entry>Valeur par défaut</entry>
787   <entry>Positionné au</entry>
788   <entry>-o</entry>
789   <entry>Ce que dit la documentation</entry>
790   <entry>Commentaires</entry>
791  </row>
792 </thead>
793
794 <tbody>
795  <row>
796   <entry>max_fsm_pages</entry>
797   <entry>1000 à Int Max</entry>
798   <entry>20000</entry>
799   <entry>
800   Démarrage
801   </entry>
802   <entry></entry>
803   <entry>
804   Positionne le nombre maximum de pages disque pour lesquelles l'espace
805   libre est recherché dans la carte de l'espace libre partagé.
806   Six octets de mémoire partagée sont consommés pour chaque connecteur
807   de page. La valeur doit être supérieure à 16 X max_fsm_relations.
808   </entry>
809   <entry>
810   <para>
811   Un paramétrage correct de la FSM peut éliminer, ou au moins, retarder
812   l'obligation d'exécuter VACUUM FULL et REINDEX. La meilleure façon de le régler
813   est la suivante&nbsp;:
814   <orderedlist>
815     <itemizedlist><para>calculer la fréquence du VACUUM (normal) de la
816   base en fonction des écritures&nbsp;;</para></itemizedlist>
817     <itemizedlist><para>utiliser la base en fonctionnement
818   normal et exécuter VACUUM VERBOSE ANALYZE à la place de VACUUM, en sauvegardant
819   la sortie dans un fichier&nbsp;;</para></itemizedlist>
820     <itemizedlist><para>calculer le nombre de pages maximum réclamé
821   par VACUUM et utiliser ce chiffre.</para></itemizedlist>
822   </orderedlist>
823   </para>
824   <para>
825   Alternativement, en cas d'utilisation d'autovacuum, la valeur peut être
826   issue d'un pourcentage du nombre total de pages dans la base, pour coïncider
827   avec le pourcentage d'autovacuum. Quoiqu'il en soit, une page demande peu
828   de mémoire (environ 6 octets). Il est donc préférable d'être généreux plutôt
829   que radin.
830   </para>
831   <para>
832   Pour les base de données qui connaissent des &laquo;&nbsp;pics&nbsp;&raquo;
833   d'activité (rafales d'un million de mises à jour mais pas d'autre
834   activité des minutes ou des heures durant), ce nombre peut être
835   impossible à optimiser. Les lignes insérées n'ont pas d'impact
836   sur la FSM. Enfin, si le serveur est peu fourni en RAM, augmenter
837   cette valeur peut s'avérer contre-productif.
838   </para>
839   </entry>
840  </row>
841  <row>
842   <entry>max_fsm_relations</entry>
843   <entry>10 à Int Max</entry>
844   <entry>1000</entry>
845   <entry>
846   Démarrage
847   </entry>
848   <entry></entry>
849   <entry>
850   Positionne le nombre maximum de relations (tables et index) pour
851   lesquelles l'espace libre est recherché dans la carte de l'espace libre
852   partagé. Chaque connecteur utilise approximativement 50 octets de mémoire.
853   </entry>
854   <entry>
855   Peu d'utilisateurs peuvent avoir besoin d'ajuster ce paramètre mais il est
856   intéressant de le considérer. FSM_relations doit être au moins équivalent
857   au nombre de tables dans l'ensemble des bases, bases squelettes et schéma
858   système compris. PostgreSQL peut avoir des performances aléatoires
859   si le nombre de FSM_relations est trop faible.
860   </entry>
861  </row>
862 </tbody>
863 </tgroup>
864 </table>
865
866 </sect2>
867
868 <sect2>
869 <title>Utilisation des ressources du noyau</title>
870
871 <table>
872 <tgroup cols="7" align="left" colsep="1" rowsep="1">
873
874 <thead>
875  <row>
876   <entry>Paramètre</entry>
877   <entry>Échelle</entry>
878   <entry>Valeur par défaut</entry>
879   <entry>Positionné au</entry>
880   <entry>-o</entry>
881   <entry>Ce que dit la documentation</entry>
882   <entry>Commentaires</entry>
883  </row>
884 </thead>
885
886 <tbody>
887  <row>
888   <entry>max_files_per_process</entry>
889   <entry>25 à Int Max</entry>
890   <entry>1000</entry>
891   <entry>
892   Démarrage
893   </entry>
894   <entry></entry>
895   <entry>
896   Fixe le nombre maximum de fichiers simultanément ouverts par chaque
897   sous-processus du serveur. La valeur par défaut est 1&nbsp;000.
898   Si le noyau impose une limite par processus, il n'est pas nécessaire
899   de s'inquiéter de ce paramètre. Mais sur la plupart des plateformes
900   (et notamment BSD), le noyau autorise des processus individuels à ouvrir
901   beaucoup plus de fichiers que le système ne peut en prendre en charge
902   lorsque de nombreux processus essayent tous d'ouvrir ce nombre de fichiers.
903   Si le message d'erreur &laquo;&nbsp;Trop de fichiers ouverts&nbsp;&raquo;
904   (<foreignphrase>"Too many open files"</foreignphrase>) apparaît,
905   il faut alors essayer de réduire ce paramètre. Il ne peut être
906   fixé qu'au démarrage du serveur.
907   </entry>
908   <entry>
909   D'après la documentation, utiliser essentiellement pour BSD. À considérer uniquement
910   lors de l'apparition de messages &laquo;&nbsp;Trop de fichiers ouverts&nbsp;&raquo;
911   (<foreignphrase>"Too many open files"</foreignphrase>).
912   </entry>
913  </row>
914  <row>
915   <entry>preload_libraries</entry>
916   <entry>Chemin de fichier</entry>
917   <entry>Vide</entry>
918   <entry>
919   Démarrage
920   </entry>
921   <entry></entry>
922   <entry>
923   <para>
924   Indique les bibliothèques à précharger au démarrage du serveur. Une
925   fonction d'initialisation sans paramètre peut optionnellement être
926   appelée pour chaque bibliothèque. Pour cela, il suffit d'ajouter un
927   double-point et le nom de la fonction d'initialisation après le
928   nom de la bibliothèque. '$libdir/mylib:mylib_init' implique, par exemple,
929   le préchargement de mylib et l'exécution de la fonction mylib_init.
930   Si plusieurs bibliothèques doivent être chargées, leurs noms
931   sont séparés par des virgules.
932   </para>
933   <para>
934   Si une bibliothèque ou une fonction d'initialisation ainsi indiquée
935   n'est pas trouvée, le serveur ne peut pas démarrer. Les bibliothèques
936   du langage procédural de PostgreSQL peuvent être préchargées de cette
937   façon, typiquement en utilisant la syntaxe '$libdir/plXXX:plXXX_init'
938   avec XXX qui peut être pgsql, perl, tcl ou python.
939   </para>
940   <para>
941   Le préchargement (et l'initialisation éventuelle) d'une bibliothèque
942   partagée permet d'éviter le temps de chargement de la bibliothèque
943   la première fois qu'elle est utilisée. Néanmoins, le temps de démarrage
944   de chaque processus serveur peut croître légèrement, même si ce
945   processus n'utilise jamais cette bibliothèque. Cette option n'est
946   donc recommandée que pour les bibliothèques utilisées dans la plupart
947   des sessions.
948   </para>
949   </entry>
950   <entry>
951   Cela n'est utile que pour dans le cas de bases de données spécialisées.
952   Une base de cartographie peut, par exemple, gagner légèrement en performances
953   en préchargeant les bibliothèques GIS. Pour la plupart des systèmes, il est
954   préférable de ne pas renseigner cette option.
955   </entry>
956  </row>
957 </tbody>
958 </tgroup>
959 </table>
960
961 </sect2>
962
963 <sect2>
964 <title>Délai de nettoyage (<foreignphrase>vacuum</foreignphrase>)</title>
965
966 <table>
967 <tgroup cols="7" align="left" colsep="1" rowsep="1">
968
969 <thead>
970  <row>
971   <entry>Paramètre</entry>
972   <entry>&Eacute;chelle</entry>
973   <entry>Valeur par défaut</entry>
974   <entry>Positionné au</entry>
975   <entry>-o</entry>
976   <entry>Ce que dit la documentation</entry>
977   <entry>Commentaires</entry>
978  </row>
979 </thead>
980
981 <tbody>
982  <row>
983   <entry>vacuum_cost_delay</entry>
984   <entry></entry>
985   <entry>0</entry>
986   <entry>Exécution</entry>
987   <entry></entry>
988   <entry>
989   Le temps, en millisecondes, pendant lequel le processus est endormi lorsque
990   la limite de coût est atteinte. La valeur par défaut est 0, ce qui désactive
991   la fonctionnalité de délai de nettoyage en fonction du coût. Une valeur
992   positive active le nettoyage fonction du coût. Sur la plupart des systèmes,
993   la résolution réelle du délai est de 10 millisecondes&nbsp;; une valeur
994   de vacuum_cost_delay qui n'est pas un multiple de 10 a le même comportement
995   que le plus petit multiple de 10 supérieur à cette valeur.
996   </entry>
997   <entry>
998   Ce paramètre est très utile lors du nettoyage de tables volumineuses, qui
999   autrement, peut bloquer les E/S pendant de longues périodes ou maintenir
1000   des verrous bloquant de nombreuses requêtes. Pour l'essentiel, l'activation
1001   de ce paramètre découpe le nettoyage d'une table volumineuse en segments
1002   définis comme des unités de travail spécifiques, entre lesquelles le
1003   nettoyage est mis en veille pour le temps défini par le paramètre. Cela a pour
1004   effet d'augmenter parfois considérablement le temps nécessaire au nettoyage,
1005   mais aussi de réduire l'impact du nettoyage sur le système, de l'ordre de 85%.
1006   Une valeur raisonnable est comprise entre 50&nbsp;ms et 200&nbsp;ms.
1007   </entry>
1008  </row>
1009  <row>
1010   <entry>vacuum_cost_page_hit</entry>
1011   <entry></entry>
1012   <entry>1</entry>
1013   <entry>Exécution</entry>
1014   <entry></entry>
1015   <entry>
1016   Indique le coût estimé de nettoyage d'un tampon trouvé dans le cache de
1017   tampon partagé. Ce paramètre représente le coût du verrouillage du groupe de
1018   tampons, la recherche de la table de hachage partagée et le parcours du
1019   contenu de la page.
1020   </entry>
1021   <entry>
1022   Il est préférable de ne pas modifier ce paramètre, mais plutôt
1023   vacuum_cost_limit.
1024   </entry>
1025  </row>
1026  <row>
1027   <entry>vacuum_cost_page_miss</entry>
1028   <entry></entry>
1029   <entry>10</entry>
1030   <entry>Exécution</entry>
1031   <entry></entry>
1032   <entry>
1033   Indique le coût estimé de nettoyage d'un tampon à lire sur le disque. Ce
1034   paramètre représente le coût de verrouillage du groupe de tampons, la recherche de la
1035   table de hachage partagée, la lecture du bloc souhaité sur le disque et le
1036   parcours de son contenu.
1037   </entry>
1038   <entry>
1039   Il est préférable de ne pas modifier ce paramètre, mais plutôt
1040   vacuum_cost_limit.
1041   </entry>
1042  </row>
1043  <row>
1044   <entry>vacuum_cost_page_dirty</entry>
1045   <entry></entry>
1046   <entry>20</entry>
1047   <entry>Exécution</entry>
1048   <entry></entry>
1049   <entry>
1050   Indique le coût estimé de la modification par le nettoyeur d'un bloc
1051   précédemment nettoyé. Ce paramètre représente les E/S supplémentaires requises
1052   pour supprimer une nouvelle fois du disque les blocs inutiles.
1053   </entry>
1054   <entry>
1055   Il est préférable de ne pas modifier ce paramètre, mais plutôt
1056   vacuum_cost_limit.
1057   </entry>
1058  </row>
1059  <row>
1060   <entry>vacuum_cost_limit</entry>
1061   <entry></entry>
1062   <entry>200</entry>
1063   <entry>Exécution</entry>
1064   <entry></entry>
1065   <entry>
1066   Indique le coût cumulé qui impose la mise en sommeil du processus de
1067   nettoyage.
1068   </entry>
1069   <entry>
1070   La valeur de ce paramètre est diminuée pour fragmenter le nettoyage en des
1071   &laquo;&nbsp;segments&nbsp;&raquo; plus nombreux. Une combinaison très
1072   aggressive consiste à positionner vacuum_cost_delay à 200&nbsp;ms et
1073   vacuum_cost_limit à 50&nbsp;ms&nbsp;; cela implique un nettoyage 10 fois plus
1074   long mais sans impact sur les performances de la base de données. Dans la
1075   plupart des cas, le DBA peut être plus modéré.
1076   </entry>
1077  </row>
1078 </tbody>
1079 </tgroup>
1080 </table>
1081
1082 </sect2>
1083
1084 <sect2>
1085 <title>Processus d'écriture en arrière-plan (<foreignphrase>Background
1086 Writer</foreignphrase>)</title>
1087
1088 <table>
1089 <tgroup cols="7" align="left" colsep="1" rowsep="1">
1090
1091 <thead>
1092  <row>
1093   <entry>Paramètre</entry>
1094   <entry>Échelle</entry>
1095   <entry>Valeur par défaut</entry>
1096   <entry>Positionné au</entry>
1097   <entry>-o</entry>
1098   <entry>Ce que dit la documentation</entry>
1099   <entry>Commentaires</entry>
1100  </row>
1101 </thead>
1102
1103 <tbody>
1104  <row>
1105   <entry>bgwriter_delay</entry>
1106   <entry></entry>
1107   <entry>200</entry>
1108   <entry>Démarrage</entry>
1109   <entry></entry>
1110   <entry>
1111   Indique le délai entre les périodes d'activité du processus d'écriture en arrière-plan. À
1112   chaque tour, ce processus écrit sur le disque un certain nombre de tampons
1113   modifiés (nombre ajustable à l'aide des paramètres qui suivent). Les tampons
1114   sélectionnés sont toujours les plus anciens des tampons modifiés. Le processus d'écriture
1115   est alors mis en veille pour bgwriter_delay millisecondes, et ainsi de suite.
1116   </entry>
1117   <entry>
1118   <para>
1119   Fonctionnalité nouvelle, le processus d'écriture en arrière-plan est destiné à
1120   alléger les pics de contrôle.
1121   </para>
1122   <para>
1123   L'OSDL effectue toujours des tests de configuration du bgwriter&nbsp;; aucune
1124   recommendation ne peut être faite à ce jour.
1125   </para>
1126   </entry>
1127  </row>
1128  <row>
1129   <entry>bgwriter_lru_percent</entry>
1130   <entry></entry>
1131   <entry>1.0</entry>
1132   <entry>Redémarrage</entry>
1133   <entry></entry>
1134   <entry>
1135    Pour réduire la probabilité que les processus serveur n'effectuent leurs
1136    propres écritures, le processus d'écriture en arrière-plan tente d'écrire les tampons
1137    prochainement recyclés. &Agrave; chaque tour, il examine jusqu'à
1138    <varname>bgwriter_lru_percent</varname> des tampons les plus proches d'un
1139    recyclage et écrit les tampons modifiés. La valeur par défaut est 1.0
1140    (pourcentage du nombre total de tampons partagés).
1141   </entry>
1142   <entry>
1143   </entry>
1144  </row>
1145  <row>
1146   <entry>bgwriter_lru_maxpages</entry>
1147   <entry></entry>
1148   <entry>5</entry>
1149   <entry>Redémarrage</entry>
1150   <entry></entry>
1151   <entry>
1152    &Agrave; chaque tour, seul ce nombre de tampons, au maximum, peuvent être écrits
1153    à la suite d'une recherche de tampons &laquo;&nbsp;proches du
1154    recyclage&nbsp;&raquo;.
1155   </entry>
1156   <entry>
1157   </entry>
1158  </row>
1159  <row>
1160   <entry>bgwriter_all_percent</entry>
1161   <entry></entry>
1162   <entry>0.333</entry>
1163   <entry>Redémarrage</entry>
1164   <entry></entry>
1165   <entry>
1166    Pour réduire la quantité de travail nécessaire à chaque point de co