root/traduc/trunk/postgresql/config.xml

Revision 1150, 238.0 kB (checked in by gleu, 2 months ago)

Mise à jour en version 8.3.4.

  • Property svn:keywords set to Date Author Revision
Line 
1 <?xml version="1.0" encoding="ISO-8859-15"?>
2 <!-- Dernière modification
3      le       $Date$
4      par      $Author$
5      révision $Revision$ -->
6 <!-- SAS : 20071020, PG8.3b1 -->
7
8   <chapter id="runtime-config">
9    <title>Configuration du serveur</title>
10
11    <indexterm>
12     <primary>configuration</primary>
13     <secondary>du serveur</secondary>
14    </indexterm>
15
16    <para>
17     Un grand nombre de paramètres de configuration permettent de modifier le
18     comportement du système de bases de données. Dans la première section de ce
19     chapitre, les méthodes de configuration de ces paramètres sont décrites&nbsp;; les
20     sections suivantes discutent de chaque paramètre en détail.
21    </para>
22
23   <sect1 id="config-setting">
24    <title>Paramètres de configuration</title>
25
26    <para>
27     Tous les noms de paramètres sont insensibles à la casse. Chaque
28     paramètre prend une valeur d'un de ces quatre types&nbsp;: booléen, entier,
29     nombre à virgule flottante ou chaîne de caractères. Les unités par défaut
30     peuvent être récupérées en référençant <literal>pg_settings.unit</literal>.
31     Les valeurs booléennes peuvent être <literal>ON</literal>, <literal>OFF</literal>,
32     <literal>TRUE</literal>, <literal>FALSE</literal>, <literal>YES</literal>,
33     <literal>NO</literal>, <literal>1</literal>, <literal>0</literal>
34     ou tout préfixe non ambigü de celles-ci (toutes ces écritures sont
35     insensibles à la casse).
36    </para>
37
38    <para>
39     Certains paramètres indiquent une valeur de taille mémoire ou de durée.
40     Ils ont chacun une unité implicite, soit Ko, soit blocs (typiquement
41     8&nbsp;Ko), soit millisecondes, soit secondes, soit minutes. Pour
42     simplifier la saisie, une unité différente peut être indiquée
43     de façon explicite. Les unités mémoire valides sont <literal>kB</literal>
44     (kilo-octets), <literal>MB</literal> (Méga-octets) et
45     <literal>GB</literal> (Giga-octets)&nbsp;; les
46     unités de temps valides sont <literal>ms</literal>
47     (millisecondes), <literal>s</literal> (secondes),
48     <literal>min</literal> (minutes), <literal>h</literal> (heures),
49     et <literal>d</literal> (jours). Les unités de mémoire sont des
50     multiples de 1024, pas de 1000.
51    </para>
52
53    <para>
54     Une façon d'initialiser ces paramètres est d'éditer le fichier
55     <filename>postgresql.conf</filename>
56     <indexterm><primary>postgresql.conf</primary></indexterm>
57     qui est normalement placé dans le répertoire data
58     (<application>initdb</application> y installe une copie par défaut).
59     Un exemple de contenu peut être&nbsp;:
60 <programlisting># Ceci est un commentaire
61 log_connections = yes
62 log_destination = 'syslog'
63 search_path = '"$user", public'
64 shared_buffers = 128MB</programlisting>
65     Un paramètre est indiqué par ligne. Le signe égal entre le nom et la
66     valeur est optionnel. Les espaces n'ont pas de signification et les
67     lignes vides sont ignorées. Les marques de hachage (<literal>#</literal>)
68     introduisent des commentaires. Les valeurs des paramètres qui ne
69     sont pas des identificateurs simples ou des nombres doivent être placées entre
70     guillemets simples. Pour intégrer un guillemet simple dans la valeur d'un
71     paramètre, on écrit soit deux guillemets (c'est la méthode préférée) soit
72     un antislash suivi du guillemet.
73    </para>
74
75    <para>
76     <indexterm>
77      <primary><literal>include</literal></primary>
78      <secondary>dans le fichier de configuration</secondary>
79     </indexterm>
80     En plus de la configuration des paramètres, le fichier
81     <filename>postgresql.conf</filename> peut contenir des
82     <firstterm>directives d'inclusion</firstterm> indiquant un autre fichier à
83     lire et dont le contenu doit être traité à ce niveau comme partie intégrante du
84     fichier de configuration. Les directives d'inclusion ressemblent simplement à&nbsp;:
85 <programlisting>
86 include 'nom_fichier'
87 </programlisting>
88     Si le nom du fichier n'est pas un chemin absolu, il est pris comme relatif
89     au répertoire contenant le fichier de configuration le référençant. Les
90     inclusions peuvent être imbriquées.
91    </para>
92
93    <para>
94     <indexterm>
95      <primary>SIGHUP</primary>
96     </indexterm>
97     Le fichier de configuration est relu à chaque fois que le processus
98     serveur principal reçoit un signal <systemitem>SIGHUP</systemitem>
99     (<literal>pg_ctl reload</literal> est le moyen le plus simple de
100     l'envoyer). Le
101     processus serveur principal propage aussi ce signal aux processus serveur
102     en cours d'exécution de façon à ce que les sessions existantes
103     obtiennent aussi la nouvelle valeur. Il est également possible d'envoyer
104     le signal directement à un seul processus serveur. Quelques paramètres
105     ne peuvent être initialisés qu'au lancement du serveur&nbsp;; tout changement
106     de leur valeur dans le fichier de configuration est ignoré jusqu'au prochain
107     démarrage du serveur.
108    </para>
109
110    <para>
111     Une autre façon de configurer ces paramètres est de les passer comme
112     option de la commande <command>postgres</command>&nbsp;:
113 <programlisting>postgres -c log_connections=yes -c log_destination='syslog'</programlisting>
114     Les options de la ligne de commande surchargent le paramétrage
115     effectué dans le fichier <filename>postgresql.conf</filename>.
116     Ce qui signifie que la valeur d'un paramètre passé en ligne de commande
117     ne peut plus être modifiée et rechargée à la volée à l'aide du fichier
118     <filename>postgresql.conf</filename>. C'est pourquoi, bien que la méthode
119     de la ligne de commande paraisse pratique, elle peut coûter en
120     flexibilité par la suite.
121    </para>
122
123    <para>
124     Il est parfois utile de donner une option en ligne de
125     commande pour une session particulière unique. La variable d'environnement
126     <envar>PGOPTIONS</envar> est utilisée côté client à ce propos&nbsp;:
127 <programlisting>env PGOPTIONS='-c geqo=off' psql</programlisting>
128     (Cela fonctionne pour toute application client
129     fondée sur <application>libpq</application>, et non pas seulement pour
130     <application>psql</application>.) Cela ne fonctionne pas pour
131     les paramètres fixés au démarrage du serveur ou qui doivent être
132     précisés dans <filename>postgresql.conf</filename>.
133    </para>
134
135    <para>
136     De plus, il est possible d'affecter un ensemble de paramètres à un
137     utilisateur ou à une base de données. Quand une session est lancée, les
138     paramètres par défaut de l'utilisateur et de la base de données
139     impliqués sont chargés. Les commandes
140     <xref linkend="sql-alteruser" endterm="sql-alteruser-title"/> et
141     <xref linkend="sql-alterdatabase" endterm="sql-alterdatabase-title"/>
142     sont respectivement utilisées pour configurer ces paramètres. Les
143     paramètres par base de données surchargent
144     ceux passés sur la ligne de commande de <command>postgres</command> ou
145     du fichier de configuration et sont à leur tour surchargés par ceux de
146     l'utilisateur&nbsp;; les deux sont surchargés par les paramètres de session.
147    </para>
148
149    <para>
150     Quelques paramètres peuvent être modifiés dans les sessions
151     <acronym>SQL</acronym> individuelles avec la commande
152     <xref linkend="sql-set" endterm="sql-set-title"/>, par exemple&nbsp;:
153 <screen>SET ENABLE_SEQSCAN TO OFF;</screen>
154     Si <command>SET</command> est autorisé, il surcharge toutes les autres sources de
155     valeurs pour le paramètre. Quelques paramètres ne peuvent pas être changés
156     via <command>SET</command>&nbsp;: s'ils contrôlent un comportement qui
157     ne peut pas être modifié sans relancer le serveur
158     <productname>PostgreSQL</productname>, par exemple. De plus, quelques
159     paramètres peuvent être modifiés via <command>SET</command> ou
160     <command>ALTER</command> par les superutilisateurs, mais pas par les
161     utilisateurs ordinaires.
162    </para>
163
164    <para>
165     La commande <xref linkend="sql-show" endterm="sql-show-title"/> permet
166     d'inspecter les valeurs courantes de tous les paramètres.
167    </para>
168
169    <para>
170     La table virtuelle <structname>pg_settings</structname> (décrite dans la
171     <xref linkend="view-pg-settings"/>) autorise aussi l'affichage et la mise à jour de
172     paramètres de session à l'exécution. Elle est équivalente à <command>SHOW</command>
173     et <command>SET</command> mais peut être plus facile à utiliser parce qu'elle
174     peut être jointe avec d'autres tables et que ses lignes peuvent être
175     sélectionnées en utilisant des conditions personnalisées.
176    </para>
177    </sect1>
178    
179    <sect1 id="runtime-config-file-locations">
180      <title>Emplacement des fichiers</title>
181      
182      <para>
183        En plus du fichier <filename>postgresql.conf</filename> déjà mentionné,
184        <productname>PostgreSQL</productname> utilise deux autres fichiers de
185        configuration éditables manuellement. Ces fichiers contrôlent
186        l'authentification du client (leur utilisation est discutée dans le
187        <xref linkend="client-authentication"/>). Par défaut, les trois fichiers de
188        configuration sont stockés dans le répertoire data du cluster de bases
189        de données. Les paramètres décrits dans cette section permettent de
190        déplacer les fichiers de configuration. Ce qui peut en faciliter
191        l'administration. Il est, en particulier, souvent plus facile de
192        s'assurer que les fichiers de configuration sont correctement sauvegardés
193        quand ils sont conservés à part.
194      </para>
195        
196        <variablelist>
197          <varlistentry id="guc-data-directory" xreflabel="data_directory">
198            <term><varname>data_directory</varname> (<type>string</type>)</term>
199            <listitem>
200            <indexterm>
201              <primary>paramètre de configuration <varname>data_directory</varname></primary>
202            </indexterm>
203              <para>
204                Indique le répertoire à utiliser pour le stockage des données.
205                Ce paramètre ne peut être initialisé qu'au lancement du
206                serveur.
207              </para>
208            </listitem>
209          </varlistentry>
210        
211          <varlistentry id="guc-config-file" xreflabel="config_file">
212            <term><varname>config_file</varname> (<type>string</type>)</term>
213            <listitem>
214            <indexterm>
215              <primary>paramètre de configuration <varname>config_file</varname>
216                </primary>
217            </indexterm>
218              <para>
219                Indique le fichier de configuration principal du serveur
220                (appelé <filename>postgresql.conf</filename>). Ce paramètre
221                ne peut être initialisé que sur la ligne de commande de
222                <command>postgres</command>.
223              </para>
224            </listitem>
225          </varlistentry>
226    
227          <varlistentry id="guc-hba-file" xreflabel="hba_file">
228            <term><varname>hba_file</varname> (<type>string</type>)</term>
229            <listitem>
230            <indexterm>
231              <primary>paramètre de configuration <varname>hba_file</varname></primary>
232            </indexterm>
233              <para>
234                Indique le fichier de configuration de l'authentification
235                fondée sur l'hôte (appelé <filename>pg_hba.conf</filename>).
236                Ce paramètre ne peut être initialisé qu'au lancement du
237                serveur.
238              </para>
239            </listitem>
240          </varlistentry>
241
242          <varlistentry id="guc-ident-file" xreflabel="ident_file">
243            <term><varname>ident_file</varname> (<type>string</type>)</term>
244            <listitem>
245            <indexterm>
246              <primary>paramètre de configuration <varname>ident_file</varname></primary>
247            </indexterm>
248              <para>
249                Indique le fichier de configuration de l'authentification
250                <application>ident</application> (appelé <filename>pg_ident.conf</filename>).
251                Ce paramètre ne peut être initialisé qu'au lancement du
252                serveur.
253              </para>
254            </listitem>
255          </varlistentry>
256
257          <varlistentry id="guc-external-pid-file"
258            xreflabel="external_pid_file">
259            <term><varname>external_pid_file</varname> (<type>string</type>)</term>
260            <listitem>
261            <indexterm>
262              <primary>paramètre de configuration <varname>external_pid_file</varname></primary>
263            </indexterm>
264              <para>
265                Indique le nom d'un fichier supplémentaire d'identifiant de
266                processus (PID) créé par le serveur à l'intention des
267                programmes d'administration du serveur.
268                Ce paramètre ne peut être initialisé qu'au lancement du
269                serveur.
270              </para>
271            </listitem>
272          </varlistentry>
273        </variablelist>
274
275      <para>
276        Dans une installation par défaut, aucun des paramètres ci-dessus n'est
277        configuré explicitement. À la place, le répertoire des données est
278        indiqué par l'option <option>-D</option> en ligne de commande ou par
279        la variable d'environnement <envar>PGDATA</envar>. Les fichiers de
280        configuration sont alors tous disponibles dans le répertoire des données.
281      </para>
282
283      <para>
284        Pour conserver les fichiers de configuration dans un répertoire
285        différent de data, l'option <option>-D</option> de la ligne de
286        commande <command>postgres</command>
287        ou la variable d'environnement <envar>PGDATA</envar> doit pointer sur le
288        répertoire contenant les fichiers de configuration. Le paramètre
289        <varname>data_directory</varname> doit alors être configuré dans le
290        fichier <filename>postgresql.conf</filename> (ou sur la ligne de commande) pour
291        préciser où est réellement situé le répertoire des données.
292        <varname>data_directory</varname> surcharge <option>-D</option> et
293        <envar>PGDATA</envar> pour l'emplacement du répertoire des données,
294        mais pas pour l'emplacement des fichiers de configuration.
295      </para>
296
297      <para>
298        les noms des fichiers de configuration et leur emplacement peuvent
299        être indiqués individuellement en utilisant les
300        paramètres <varname>config_file</varname>, <varname>hba_file</varname> et/ou
301        <varname>ident_file</varname>. <varname>config_file</varname> ne peut être
302        indiqué que sur la ligne de commande de <command>postgres</command>
303        mais les autres peuvent être placés dans le fichier de configuration
304        principal. Si les trois paramètres et <varname>data_directory</varname> sont
305        configurés explicitement, alors il n'est pas nécessaire d'indiquer
306        <option>-D</option> ou <envar>PGDATA</envar>.
307      </para>
308
309      <para>
310        Lors de la configuration de ces paramètres, un chemin relatif est
311        interprété d'après le répertoire d'où est lancé <command>postgres</command>.
312      </para>
313
314    </sect1>
315
316    <sect1 id="runtime-config-connection">
317     <title>Connexions et authentification</title>
318
319     <sect2 id="runtime-config-connection-settings">
320      <title>Paramètres de connexion</title>
321
322      <variablelist>
323      
324        <varlistentry id="guc-listen-addresses" xreflabel="listen_addresses">
325          <term><varname>listen_addresses</varname> (<type>string</type>)</term>
326          <listitem>
327          <indexterm>
328            <primary>paramètre de configuration <varname>listen_addresses</varname>
329              </primary>
330          </indexterm>
331            <para>
332              Indique les adresses TCP/IP sur lesquelles le serveur écoute
333              les connexions en provenance d'applications clientes. La valeur prend la forme
334              d'une liste de noms d'hôte ou d'adresses IP numériques séparés
335              par des virgules. L'entrée spéciale <literal>*</literal> correspond
336              à toutes les interfaces IP disponibles. Si la liste est vide, le
337              serveur n'écoute aucune interface IP, auquel cas seuls les
338              sockets de domaine Unix peuvent être utilisées pour s'y connecter.
339              La valeur par défaut est
340              <systemitem class="systemname">localhost</systemitem>, ce qui
341              n'autorise que les
342              connexions locales de type <quote>loopback</quote>. Ce
343              paramètre ne peut être configuré qu'au lancement du serveur.
344            </para>
345          </listitem>
346        </varlistentry>
347
348        <varlistentry id="guc-port" xreflabel="port">
349          <term><varname>port</varname> (<type>integer</type>)</term>
350          <listitem>
351          <indexterm>
352            <primary>paramètre de configuration <varname>port</varname></primary>
353          </indexterm>
354            <para>
355              Le port TCP sur lequel le serveur écoute&nbsp;; 5432 par défaut.
356              Le même numéro de port est utilisé pour toutes les
357              adresses IP que le serveur écoute. Ce paramètre ne peut
358              être configuré qu'au lancement du serveur.
359            </para>
360          </listitem>
361        </varlistentry>
362
363        <varlistentry id="guc-max-connections" xreflabel="max_connections">
364          <term><varname>max_connections</varname> (<type>integer</type>)</term>
365       <listitem>
366          <indexterm>
367            <primary>paramètre de configuration <varname>max_connections</varname>
368              </primary>
369          </indexterm>
370        <para>
371         Indique le nombre maximum de connexions concurrentes au serveur de
372         base de données. La valeur par défaut typique est de 100 connexions,
373         mais elle peut être moindre si les paramètres du noyau ne le supportent pas
374         (ce qui est déterminé lors de l'<application>initdb</application>). Ce
375         paramètre ne peut être configuré qu'au lancement du serveur.
376        </para>
377
378        <para>
379         L'augmentation de ce paramètre peut obliger <productname>PostgreSQL</productname>
380         à réclamer plus de mémoire partagée
381         <systemitem class="osname">System V</systemitem>
382         ou de sémaphores que ne le permet la configuration par défaut du système
383         d'exploitation. Voir la <xref linkend="sysvipc"/> pour plus
384         d'informations sur la façon d'ajuster ces paramètres, si nécessaire.
385        </para>
386       </listitem>
387      </varlistentry>
388
389      <varlistentry id="guc-superuser-reserved-connections" xreflabel="superuser_reserved_connections">
390       <term><varname>superuser_reserved_connections</varname> (<type>integer</type>)</term>
391       <listitem>
392       <indexterm>
393        <primary>paramètre de configuration <varname>superuser_reserved_connections</varname></primary>
394       </indexterm>
395        <para>
396         Indique le nombre de connecteurs (<quote>slots</quote>) réservés
397         aux connexions des superutilisateurs <productname>PostgreSQL</productname>.
398         Au plus <xref linkend="guc-max-connections"/> connexions peuvent être
399         actives simultanément. Dès que le nombre de connexions
400         simultanément actives atteint <varname>max_connections</varname> moins
401         <varname>superuser_reserved_connections</varname>, les nouvelles
402         connexions ne sont plus acceptées que pour les superutilisateurs.
403        </para>
404
405        <para>
406         La valeur par défaut est de trois connexions. La valeur doit être plus
407         petite que la valeur de <varname>max_connections</varname>. Ce paramètre
408         ne peut être configuré qu'au lancement du serveur.
409        </para>
410       </listitem>
411      </varlistentry>
412
413      <varlistentry id="guc-unix-socket-directory" xreflabel="unix_socket_directory">
414        <term><varname>unix_socket_directory</varname> (<type>string</type>)</term>
415        <listitem>
416        <indexterm>
417          <primary>paramètre de configuration <varname>unix_socket_directory</varname></primary>
418        </indexterm>
419          <para>
420            Indique le répertoire du socket de domaine Unix sur lequel le
421            serveur écoute les connexions des applications client. Par défaut,
422            il s'agit de <filename>/tmp</filename> mais cela peut être
423            modifié au moment de la construction. Ce paramètre ne peut
424            être configuré qu'au lancement du serveur.
425          </para>
426        </listitem>
427      </varlistentry>
428
429      <varlistentry id="guc-unix-socket-group" xreflabel="unix_socket_group">
430        <term><varname>unix_socket_group</varname> (<type>string</type>)</term>
431        <listitem>
432        <indexterm>
433          <primary>paramètre de configuration <varname>unix_socket_group</varname>
434            </primary>
435        </indexterm>
436          <para>
437            Configure le groupe propriétaire du socket de domaine Unix
438            (l'utilisateur propriétaire de la socket est toujours l'utilisateur
439            qui lance le serveur). En combinaison avec le paramètre
440            <varname>unix_socket_permissions</varname>, ceci peut être
441            utilisé comme un mécanisme de contrôle d'accès supplémentaire pour
442            les connexions de domaine Unix. Par défaut, il s'agit d'une
443            chaîne vide, ce qui sélectionne le groupe par défaut de l'utilisateur
444            courant. Ce paramètre ne peut être configuré qu'au lancement du
445            serveur.
446          </para>
447        </listitem>
448      </varlistentry>
449
450      <varlistentry id="guc-unix-socket-permissions" xreflabel="unix_socket_permissions">
451        <term><varname>unix_socket_permissions</varname> (<type>integer</type>)</term>
452        <listitem>
453        <indexterm>
454          <primary>paramètre de configuration <varname>unix_socket_permissions</varname></primary>
455        </indexterm>
456          <para>
457            Configure les droits d'accès au socket de domaine Unix. Ce socket
458            utilise l'ensemble habituel des droits du système de fichiers
459            Unix. Ce paramètre doit être indiqué sous une forme
460            numérique telle qu'acceptée par les appels système
461            <function>chmod</function> et <function>umask</function> (pour
462            utiliser le format octal, ce nombre doit commencer avec un
463            <literal>0</literal> (zéro)).
464          </para>
465  
466          <para>
467            Les droits par défaut sont <literal>0777</literal>, signifiant que
468            tout le monde peut se connecter. Les alternatives raisonnables sont
469            <literal>0770</literal> (utilisateur et groupe uniquement, voir
470            aussi <varname>unix_socket_group</varname>) et
471            <literal>0700</literal> (utilisateur uniquement) (pour un
472            socket de domaine Unix, seul le droit d'accès en écriture
473            importe&nbsp;; il n'est donc pas nécessaire de donner ou de révoquer les
474            droits de lecture ou d'exécution).
475          </para>
476  
477          <para>
478            Ce mécanisme de contrôle d'accès est indépendant de celui décrit
479            dans le <xref linkend="client-authentication"/>.
480          </para>
481    
482          <para>
483            Ce paramètre ne peut être configuré qu'au lancement du serveur.
484          </para>
485        </listitem>
486      </varlistentry>
487
488      <varlistentry id="guc-bonjour-name" xreflabel="bonjour_name">
489       <term><varname>bonjour_name</varname> (<type>string</type>)</term>
490        <listitem>
491       <indexterm>
492        <primary>paramètre de configuration <varname>bonjour_name</varname></primary>
493       </indexterm>
494          <para>
495            Indique le nom du broadcast <productname>Bonjour</productname>.
496            Le nom de l'ordinateur est utilisé si ce paramètre est configuré avec
497            une chaîne vide (ce qui est la valeur par défaut). Ce paramètre est
498            ignoré si le serveur n'est pas compilé avec le support
499            <productname>Bonjour</productname>.
500            Ce paramètre ne peut être configuré qu'au lancement du serveur.
501          </para>
502        </listitem>
503      </varlistentry>
504      
505      <varlistentry id="guc-tcp-keepalives-idle" xreflabel="tcp_keepalives_idle">
506       <term><varname>tcp_keepalives_idle</varname> (<type>integer</type>)</term>
507       <listitem>
508       <indexterm>
509        <primary>paramètre de configuration <varname>tcp_keepalives_idle</varname></primary>
510       </indexterm>
511        <para>
512         Sur les systèmes supportant l'option de socket <symbol>TCP_KEEPIDLE</symbol>,
513         indique le nombre de secondes avant l'envoi de signaux
514         <quote>keepalives</quote> sur une connexion silencieuse
515         (<foreignphrase>idle</foreignphrase>). La valeur zéro permet d'utiliser
516         celle par défaut du système. Si <symbol>TCP_KEEPIDLE</symbol> n'est pas
517         supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré pour
518         les connexions réalisées via une socket de domaine Unix.
519        </para>
520       </listitem>
521      </varlistentry>
522      
523      <varlistentry id="guc-tcp-keepalives-interval" xreflabel="tcp_keepalives_interval">
524       <term><varname>tcp_keepalives_interval</varname> (<type>integer</type>)</term>
525       <listitem>
526       <indexterm>
527        <primary>paramètre de configuration <varname>tcp_keepalives_interval</varname></primary>
528       </indexterm>
529        <para>
530         Sur les systèmes supportant l'option de socket <symbol>TCP_KEEPINTVL</symbol>,
531         indique le temps, en secondes, d'attente d'une réponse à un
532         <quote>keepalive</quote> avant de retransmettre. La valeur zéro permet
533         d'utiliser celle par défaut du système. Si <symbol>TCP_KEEPINTVL</symbol>
534         n'est pas supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré
535         pour les connexions réalisées via une socket de domaine Unix.
536        </para>
537       </listitem>
538      </varlistentry>
539      
540      <varlistentry id="guc-tcp-keepalives-count" xreflabel="tcp_keepalives_count">
541       <term><varname>tcp_keepalives_count</varname> (<type>integer</type>)</term>
542       <listitem>
543       <indexterm>
544        <primary>paramètre de configuration <varname>tcp_keepalives_count</varname></primary>
545       </indexterm>
546        <para>
547         Sur les systèmes supportant l'option socket <symbol>TCP_KEEPCNT</symbol>,
548         indique le nombre de <quote>keepalive</quote> qui peuvent être perdus avant
549         de considérer que la connexion est tombée. La valeur zéro permet d'utiliser
550         celle par défaut du système. Si <symbol>TCP_KEEPCNT</symbol> n'est
551         pas supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré pour
552         les connexions réalisées via une socket de domaine Unix.
553        </para>
554       </listitem>
555      </varlistentry>
556      
557      </variablelist>
558      </sect2>
559      <sect2 id="runtime-config-connection-security">
560      <title>Sécurité et authentification</title>
561      
562      <variablelist>
563      <varlistentry id="guc-authentication-timeout" xreflabel="authentication_timeout">
564       <term><varname>authentication_timeout</varname> (<type>integer</type>)</term>
565       <listitem>
566       <indexterm><primary>délai</primary><secondary>authentification client</secondary></indexterm>
567       <indexterm><primary>authentification client</primary><secondary>délai lors de</secondary></indexterm>
568       <indexterm>
569         <primary>paramètre de configuration <varname>authentication_timeout</varname></primary>
570       </indexterm>
571        <para>
572         Temps maximum pour terminer l'authentification du client, en
573         secondes. Si un client n'a pas terminé le protocole d'authentification
574         dans ce délai, le serveur rompt la connexion. Cela protège le serveur
575         des clients bloqués occupant une connexion indéfiniment. La valeur par
576         défaut est d'une minute.
577         Ce paramètre peut être configuré au lancement du serveur et dans le fichier
578         <filename>postgresql.conf</filename>.
579        </para>
580       </listitem>
581      </varlistentry>
582
583      <varlistentry id="guc-ssl" xreflabel="ssl">
584        <term><varname>ssl</varname> (<type>boolean</type>)</term>
585        <listitem>
586        <indexterm>
587          <primary>paramètre de configuration <varname>ssl</varname></primary>
588        </indexterm>
589          <para>
590           Active les connexions <acronym>SSL</acronym>. Lire la
591           <xref linkend="ssl-tcp"/> avant de l'utiliser. Désactivé par défaut.
592           Ce paramètre ne peut être configuré qu'au lancement du serveur.
593          </para>
594        </listitem>
595      </varlistentry>
596
597      <varlistentry id="guc-ssl-ciphers" xreflabel="ssl_ciphers">
598       <term><varname>ssl_ciphers</varname> (<type>string</type>)</term>
599       <listitem>
600         <indexterm>
601           <primary>paramètre de configuration <varname>ssl_ciphers</varname></primary>
602         </indexterm>
603        <para>
604         Indique une liste de chiffrements <acronym>SSL</acronym> dont
605         l'utilisation est autorisée sur des connexions sécurisées. Voir la page
606         de manuel <application>openssl</application> pour la liste des
607         chiffrements supportés.
608        </para>
609       </listitem>
610      </varlistentry>
611
612      <varlistentry id="guc-password-encryption"
613        xreflabel="password_encryption">
614        <term><varname>password_encryption</varname> (<type>boolean</type>)</term>
615        <listitem>
616        <indexterm>
617          <primary>paramètre de configuration <varname>password_encryption</varname>
618            </primary>
619        </indexterm>
620          <para>
621            Ce paramètre détermine si un mot de passe, indiqué dans
622            <xref linkend="sql-createuser" endterm="sql-createuser-title"/> ou
623            <xref linkend="sql-alteruser" endterm="sql-alteruser-title"/> sans
624            qu'il soit précisé <literal>ENCRYPTED</literal> ou
625            <literal>UNENCRYPTED</literal>, doit être chiffré.
626            Actif par défaut (chiffre le mot de passe).
627          </para>
628        </listitem>
629      </varlistentry>
630
631      <varlistentry id="guc-krb-realm" xreflabel="krb_realm">
632       <term><varname>krb_realm</varname> (<type>string</type>)</term>
633       <listitem>
634       <indexterm>
635        <primary>paramètre de configuration <varname>krb_realm</varname></primary>
636       </indexterm>
637        <para>
638         Configure le domaine pour l'authentification Kerberos, GSSAPI et SSPI.
639         Voir <xref linkend="kerberos-auth"/>, <xref linkend="gssapi-auth"/> et
640         <xref linkend="sspi-auth"/> pour les détails. Ce paramètre ne peut
641         être configuré qu'au lancement du serveur.
642        </para>
643       </listitem>
644      </varlistentry>
645
646      <varlistentry id="guc-krb-server-keyfile" xreflabel="krb_server_keyfile">
647        <term><varname>krb_server_keyfile</varname> (<type>string</type>)</term>
648        <listitem>
649        <indexterm>
650          <primary>paramètre de configuration <varname>krb_server_keyfile</varname>
651            </primary>
652        </indexterm>
653          <para>
654            Configure l'emplacement du fichier contenant la clé secrète du
655            serveur Kerberos. Voir la <xref linkend="kerberos-auth"/> et la
656            la <xref linkend="gssapi-auth"/> pour les
657            détails. Ce paramètre ne peut être configuré qu'au lancement
658            du serveur.
659          </para>
660        </listitem>
661      </varlistentry>
662
663      <varlistentry id="guc-krb-srvname" xreflabel="krb_srvname">
664       <term><varname>krb_srvname</varname> (<type>string</type>)</term>
665       <listitem>
666       <indexterm>
667        <primary>paramètre de configuration <varname>krb_srvname</varname></primary>
668       </indexterm>
669        <para>
670         Configure le nom du service Kerberos. Voir la <xref linkend="kerberos-auth"/>
671         pour les détails. Ce paramètre ne peut être configuré qu'au lancement
672         du serveur.
673        </para>
674       </listitem>
675      </varlistentry>
676
677      <varlistentry id="guc-krb-server-hostname" xreflabel="krb_server_hostname">
678       <term><varname>krb_server_hostname</varname> (<type>string</type>)</term>
679       <listitem>
680       <indexterm>
681        <primary>paramètre de configuration <varname>krb_server_hostname</varname></primary>
682       </indexterm>
683        <para>
684         Configure la partie du nom de l'hôte du service principal.
685         Ceci, combiné avec <varname>krb_srvname</varname>, est utilisé pour
686         engendrer le service principal complet, c'est-à-dire
687         <varname>krb_srvname</varname><literal>/</literal><varname>krb_server_hostname</varname><literal>@</literal>REALM.
688         Sans configuration, le comportement par défaut autorise tout service
689         principal correspondant à une entrée dans la table des clés. Voir la
690         <xref linkend="kerberos-auth"/> pour les détails. Ce paramètre ne peut
691         être configuré qu'au lancement du serveur.
692        </para>
693       </listitem>
694      </varlistentry>
695
696      <varlistentry id="guc-krb-caseins-users" xreflabel="krb_caseins_users">
697       <term><varname>krb_caseins_users</varname> (<type>boolean</type>)</term>
698       <listitem>
699       <indexterm>
700        <primary>paramètre de configuration <varname>krb_caseins_users</varname></primary>
701       </indexterm>
702        <para>
703         Indique si les noms des utilisateurs Kerberos et GSSAPI doivent être traités en
704         respectant la casse. Désactivé par défaut (insensible à la casse, valeur
705         <literal>off</literal>), ce paramètre ne peut être configuré qu'au
706         lancement du serveur.
707        </para>
708       </listitem>
709      </varlistentry>
710
711      <varlistentry id="guc-db-user-namespace" xreflabel="db_user_namespace">
712        <term><varname>db_user_namespace</varname> (<type>boolean</type>)</term>
713       <listitem>
714        <indexterm>
715          <primary>paramètre de configuration <varname>db_user_namespace</varname></primary>
716        </indexterm>
717        <para>
718         Active les noms d'utilisateur par base de données. Désactivé par
719         défaut, ce paramètre ne peut être configuré que dans le fichier
720         <filename>postgresql.conf</filename> ou indiqué sur la ligne de commande.
721        </para>
722
723        <para>
724         Si ce paramètre est activé, les utilisateurs doivent être créés sous
725         la forme <literal>nomutilisateur@nom_base</literal>. Quand
726         <literal>nomutilisateur</literal> est passé par un client se
727         connectant, <literal>@</literal> et le nom
728         de la base de données sont ajoutés au nom de l'utilisateur et ce nom
729         d'utilisateur spécifique à la base est recherché par le
730         serveur. Lorsque des utilisateurs dont le nom contient un
731         <literal>@</literal> sont créés dans l'environnement SQL, ce nom doit
732         être placé entre guillemets.
733        </para>
734
735        <para>
736         Ce paramètre activé, il reste possible de créer des utilisateurs
737         globaux ordinaires. Il suffit pour cela d'ajouter
738         <literal>@</literal> au nom du client. Le <literal>@</literal> est
739         supprimé avant que le serveur ne recherche ce nom.
740        </para>
741
742        <note>
743         <para>
744          Cette fonctionnalité, temporaire, sera supprimée lorsqu'une
745          solution complète sera trouvée.
746         </para>
747        </note>
748       </listitem>
749      </varlistentry>
750
751     </variablelist>
752     </sect2>
753    </sect1>
754
755    <sect1 id="runtime-config-resource">
756     <title>Consommation des ressources</title>
757
758     <sect2 id="runtime-config-resource-memory">
759      <title>Mémoire</title>
760
761      <variablelist>
762      <varlistentry id="guc-shared-buffers" xreflabel="shared_buffers">
763       <term><varname>shared_buffers</varname> (<type>integer</type>)</term>
764       <listitem>
765       <indexterm>
766         <primary>paramètre de configuration <varname>shared_buffers</varname></primary>
767       </indexterm>
768        <para>
769         Initialise la quantité de mémoire que le serveur de bases de données
770         utilise comme mémoire partagée. La valeur par défaut, en général 32&nbsp;Mo,
771         peut être automatiquement abaissée si la configuration du noyau ne la supporte
772         pas (déterminé lors de l'exécution de l'<application>initdb</application>).
773         Ce paramètre doit être au minimum de 128&nbsp;Ko + 16&nbsp;Ko par
774         <xref linkend="guc-max-connections"/>. (Des valeurs personnalisées de
775         <symbol>BLCKSZ</symbol> agissent sur ce minimum.) Des
776         valeurs significativement plus importantes que ce minimum sont
777         généralement nécessaires pour de bonnes performances. Plusieurs dizaines de
778         méga-octets sont recommandées pour des installations en
779         production. Ce paramètre ne peut être configuré qu'au lancement du serveur.
780        </para>
781
782        <para>
783         L'augmentation de ce paramètre peut obliger
784         <productname>PostgreSQL</productname> à réclamer plus de mémoire
785         partagée <systemitem class="osname">System V</systemitem> que ce
786         que la configuration par défaut du système d'exploitation ne peut
787         gérer. Voir la <xref linkend="sysvipc"/> pour de plus amples
788         informations sur l'ajustement de ces paramètres, si nécessaire.
789        </para>
790       </listitem>
791      </varlistentry>
792
793      <varlistentry id="guc-temp-buffers" xreflabel="temp_buffers">
794       <term><varname>temp_buffers</varname> (<type>integer</type>)</term>
795       <listitem>
796       <indexterm>
797        <primary>paramètre de configuration <varname>temp_buffers</varname></primary>
798       </indexterm>
799        <para>
800         Configure le nombre maximum de tampons temporaires utilisés par chaque
801         session de la base de données. Ce sont des tampons locaux à
802         la session utilisés uniquement pour accéder aux tables temporaires. La
803         valeur par défaut est de 8&nbsp;Mo. Ce paramètre peut être modifié à l'intérieur
804         de sessions individuelles mais seulement jusqu'à la première
805         utilisation des tables temporaires dans une session&nbsp;; les tentatives
806         suivantes de changement de cette valeur n'ont aucun effet sur cette
807         session.
808        </para>
809
810        <para>
811         Une session alloue des tampons temporaires en fonction des besoins jusqu'à atteindre
812         la limite donnée par <varname>temp_buffers</varname>. Positionner
813         une valeur importante pour les sessions qui ne le nécessitent pas ne
814         coûte qu'un descripteur de tampon, soit
815         environ 64 octets, par incrément de <varname>temp_buffers</varname>. Néanmoins,
816         si un tampon est réellement utilisé, 8192 autres octets sont consommés
817         pour celui-ci (ou, plus généralement, <symbol>BLCKSZ</symbol> octets).
818        </para>
819       </listitem>
820      </varlistentry>
821
822      <varlistentry id="guc-max-prepared-transactions" xreflabel="max_prepared_transactions">
823       <term><varname>max_prepared_transactions</varname> (<type>integer</type>)</term>
824       <listitem>
825       <indexterm>
826        <primary>paramètre de configuration <varname>max_prepared_transactions</varname></primary>
827       </indexterm>
828        <para>
829         Configure le nombre maximum de transactions simultanément dans
830         l'état <quote>préparées</quote> (voir <xref
831         linkend="sql-prepare-transaction" endterm="sql-prepare-transaction-title"/>).
832         Zéro désactive la fonctionnalité des
833         transactions préparées. La valeur par défaut est de cinq transactions.
834         Ce paramètre ne peut être configuré qu'au lancement du serveur.
835        </para>
836
837        <para>
838         Si les transactions préparées ne sont pas utilisées, ce paramètre peut
839         être positionné à zéro. Au contraire, si elles sont utilisées, il
840         peut être intéressant de positionner
841         <varname>max_prepared_transactions</varname> au minimum à
842         <xref linkend="guc-max-connections"/> pour
843         éviter d'indésirables échecs lors de l'étape de préparation.
844        </para>
845
846        <para>
847         Augmenter ce paramètre peut conduire <productname>PostgreSQL</productname>
848         à réclamer plus de mémoire partagée
849         <systemitem class="osname">System V</systemitem> que ne
850         le permet la configuration par défaut du système d'exploitation.
851         Voir la <xref linkend="sysvipc"/> pour les informations concernant la façon
852         d'ajuster ces paramètres, si nécessaire.
853        </para>
854       </listitem>
855      </varlistentry>
856
857 <!-- SAS 20070119 : Dans le reste du fichier
858      j'ai traduit merge join par jointure de fusion...
859      Si jointure d'assemblage est préféré, ne pas oublié de corriger le
860      reste du document.
861      Idem pour hachage et découpage. -->
862      <varlistentry id="guc-work-mem" xreflabel="work_mem">
863        <term><varname>work_mem</varname> (<type>integer</type>)</term>
864        <listitem>
865        <indexterm>
866          <primary>paramètre de configuration <varname>work_mem</varname></primary>
867        </indexterm>
868          <para>
869            Indique la quantité de mémoire que les opérations de tri interne
870            et les tables de hachage peuvent utiliser avant de basculer sur
871            des fichiers disque temporaires. La valeur par défaut est de
872            1&nbsp;Mo. Pour une requête complexe,
873            il peut y avoir plusieurs opérations de tri ou de hachage exécutées en
874            parallèle&nbsp;; chacune peut utiliser de la mémoire à hauteur de
875            cette valeur avant de commencer à placer les données dans des
876            fichiers temporaires. De plus, de nombreuses sessions peuvent
877            exécuter de telles opérations simultanément. La mémoire totale
878            utilisée peut, de ce fait, atteindre plusieurs fois la valeur
879            de <varname>work_mem</varname>&nbsp;;
880            il est nécessaire de garder cela à l'esprit lors du choix de cette
881            valeur. Les opérations de tri sont utilisées pour <literal>ORDER
882            BY</literal>, <literal>DISTINCT</literal> et les jointures de
883            fusion. Les tables de hachage sont utilisées dans les jointures
884            de hachage, les agrégations et le traitement des
885            sous-requêtes <literal>IN</literal> fondés sur le hachage.
886          </para>
887        </listitem>
888      </varlistentry>
889
890      <varlistentry id="guc-maintenance-work-mem"
891        xreflabel="maintenance_work_mem">
892        <term><varname>maintenance_work_mem</varname> (<type>integer</type>)</term>
893        <listitem>
894        <indexterm>
895          <primary>paramètre de configuration
896            <varname>maintenance_work_mem</varname></primary>
897        </indexterm>
898          <para>
899            Indique la quantité maximale de mémoire que peuvent utiliser les
900            opérations de maintenance telles que <command>VACUUM</command>,
901            <command>CREATE INDEX</command> et
902            <command>ALTER TABLE ADD FOREIGN KEY</command>. La valeur par
903            défaut est de 16&nbsp;Mo.
904            Puisque seule une de ces opérations peut être exécutée à la fois
905            dans une session et que, dans le cadre d'un fonctionnement
906            normal, peu d'opérations de ce genre sont exécutées
907            concurrentiellement sur une même installation, il est possible d'initialiser
908            cette variable à une valeur bien plus importante que
909            <varname>work_mem</varname>. Une grande valeur peut
910            améliorer les performances des opérations VACUUM et de la
911            restauration des sauvegardes.
912          </para>
913        </listitem>
914      </varlistentry>
915
916      <varlistentry id="guc-max-stack-depth" xreflabel="max_stack_depth">
917        <term><varname>max_stack_depth</varname> (<type>integer</type>)</term>
918        <listitem>
919        <indexterm>
920          <primary>paramètre de configuration <varname>max_stack_depth</varname>
921            </primary>
922          </indexterm>
923          <para>
924            Indique la profondeur maximale de la pile d'exécution du serveur.
925            La configuration idéale pour ce paramètre est la limite réelle
926            de la pile assurée par le noyau (configurée par
927            <literal>ulimit -s</literal> ou équivalent local) à laquelle est
928            soustraite une marge de sécurité d'un Mo environ. La marge de
929            sécurité est nécessaire parce que la profondeur de la pile n'est pas
930            vérifiée dans chaque routine du serveur mais uniquement dans les
931            routines clés potentiellement récursives telles que l'évaluation
932            d'une expression. Le paramétrage par défaut est de 2&nbsp;Mo, valeur