root/traduc/trunk/slony/slon.xml

Revision 1173, 19.8 kB (checked in by gleu, 3 weeks ago)

Modifications pour permettre la génération du manuel.
Patch de Christophe Bouchet, avec quelques modifications supplémentaires de ma
part.
Cependant, il reste encore du travail pour avoir une génération parfaite.

Line 
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- DerniÚre modification
3      le       $Date$
4      par      $Author$
5      révision $Revision$ -->
6
7 <refentry id="slon">
8   <refmeta>
9     <refentrytitle id="app-slon-title"><application>slon</application></refentrytitle>
10     <manvolnum>1</manvolnum>
11     <refmiscinfo>Application</refmiscinfo>
12   </refmeta>
13   <refnamediv>
14     <refname><application>slon</application></refname>
15     <refpurpose>
16       Le démon &slony1;
17     </refpurpose>
18   </refnamediv>
19  
20   <indexterm zone="slon">
21     <primary>slon</primary>
22   </indexterm>
23  
24   <refsynopsisdiv>
25     <cmdsynopsis>
26       <command>slon</command>
27       <arg rep="repeat"><replaceable class="parameter">option</replaceable></arg>
28       <arg><replaceable class="parameter">clustername</replaceable></arg>
29       <arg><replaceable class="parameter">conninfo</replaceable></arg>
30     </cmdsynopsis>
31   </refsynopsisdiv>
32  
33   <refsect1>
34     <title>Description</title>
35     <para><application>slon</application> est un démon applicatif qui
36       <quote>contrÃŽle</quote> la réplication &slony1;. Une
37       instance <application>slon</application> doit être lancée pour
38       chaque noeud du cluster &slony1;.</para>
39   </refsect1>
40  
41   <refsect1 id="r1-app-slon-3">
42     <title>Options</title>
43     <variablelist>
44       <varlistentry>
45         <term><option>-d</option><replaceable class="parameter"> log_level</replaceable></term>
46         <listitem>
47           <para>Le paramÚtre <envar>log_level</envar> spécifie quel niveau de messages de debug
48           <application>slon</application> doit afficher dans son journal d'activité.</para>
49           <para id="nineloglevels">Il y a neuf niveaux de log :
50             <itemizedlist>
51               <listitem><para>Fatal</para></listitem>
52               <listitem><para>Error</para></listitem>
53               <listitem><para>Warn</para></listitem>
54               <listitem><para>Config</para></listitem>
55               <listitem><para>Info</para></listitem>
56               <listitem><para>Debug1</para></listitem>
57               <listitem><para>Debug2</para></listitem>
58               <listitem><para>Debug3</para></listitem>
59               <listitem><para>Debug4</para></listitem>
60             </itemizedlist>
61           </para>
62           <para> Les cinq premiers niveau de log ( de Fatal à
63           Info) sont <emphasis>toujours</emphasis> affichés dans les logs.
64           Dans les premiÚres versions de &slony1;, le niveau de log
65           <quote>suggéré</quote> était 2, ce qui affichait tous les messages
66           jusqu'au niveau Debug2.  Avec &slony1; version 2, il est
67           recommandé de positionner <envar>log_level</envar> à 0; la
68           pluspart des informations intéressantes sont produites à
69           des niveaux supérieurs à celui-là.</para>
70         </listitem>
71       </varlistentry>
72       <varlistentry>
73         <term><option>-s</option><replaceable class="parameter"> Interval entre les vérifications SYNC</replaceable></term>
74         <listitem>
75           <para>Le paramÚtre <envar>sync_interval</envar>, exprimé en millisecondes,
76           indique à quelle fréquence <application>slon</application> doit
77           vérifier si un événement <command>SYNC</command> doit
78           être produit. La valeur par défaut est 2000 ms.  La boucle principale
79           dans <function>sync_Thread_main()</function> est endormie pendant
80           des intervalles de <envar>sync_interval</envar> millisecondes
81           entre chaque itérations.</para>
82        
83           <para>Un intervalle de vérifications trÚs court garantit que le noeud
84           origine soit <quote>trÚs suivi</quote>, car il met à jour les abonnés
85           plus fréquemment. Si vous avez des séquences répliquées qui sont
86           souvent mises à jour <emphasis>sans</emphasis> que certaines tables
87           ne soient affectées, cela évite que des opérations qui mettent
88           à jour uniquement ces séquences soient effectuées, et ainsi
89           évite la génération d'événements de synchronisations.</para>
90
91           <para>Si un noeud n'est pas l'origine d'un set de réplication, et donc qu'il
92           ne reçoit aucune mise à jour des données répliquées, alors il est
93           un peu inutile de mettre une valeur inférieure à celle du paramÚtre
94           <envar>sync_interval_timeout</envar>.</para>
95         </listitem>
96       </varlistentry>
97       <varlistentry>
98         <term><option>-t</option><replaceable class="parameter">intervalle maximal entre deux SYNC</replaceable></term>
99         <listitem>
100           <para>A la fin de chaque période  <envar>sync_interval_timeout</envar>
101           , un événement <command>SYNC</command> est produit sur le noeud
102           <quote>local</quote> même si il n'y eu aucune mise à jour des
103           données répliquées et qu'aucun <command>SYNC</command> n'a été
104           généré. </para>
105
106           <para> Si l'activité de l'application s'arrête, soit parce que
107           l'application a été éteinte, soit parce que les utilisateurs humains
108           sont rentrés chez eux et arrêtés les mises à jour, alors le
109           démon  &lslon; continue de tourner et se réveille toutes les
110           <envar>sync_interval</envar> millisecondes, et si aucune mise
111           à jour ne s'est produite, alors aucun événement  <command>SYNC</command>
112           n'est généré. Sans ce paramÚtre <quote>timeout</quote>,
113           <emphasis>aucun</emphasis> événement <command>SYNC</command>
114           ne pourrait être produit, et cela entraînerait le chute du
115           systÚme de réplication. </para>
116
117           <para> Le paramÚtre <envar>sync_interval_timeout</envar> provoque
118           la génération de <command>SYNC</command>, même si il n'y a pas
119           réellement de travail de réplication a faire. Plus la valeur de
120           cette paramÚtre est basse, plus les évÚnements  <command>SYNC</command>
121           lorsque l'application n'est pas active. Ceci a deux 2 effets :</para>
122           <itemizedlist>
123             <listitem>
124               <para> Le systÚme aura plus de travail.</para>
125               <para> ( Cependant puisque l'application n'utilise pas
126                     la base de données et qu'il n'y a pas de données à répliquer,
127                     la charge de travail supplémentaire sera assez simple à gérer.)</para>
128             </listitem>
129             <listitem>
130               <para> La réplication sera tenue un peu plus <quote>à jour</quote>.</para>
131               <para> ( Cependant puisqu'il n'y a pas de données à répliquer, être
132               plus souvent <quote>mis à jour</quote> est un mirage.) </para>
133             </listitem>
134           </itemizedlist>
135           <para>La valeur par défaut est 10000 ms et la valeur maximale est 120000 ms.
136           Par défaut, vous pouvez prévoir que chaque noeud soit 
137           <quote>synchronisé</quote> par un <command>SYNC</command> toutes les 10 secondes.</para>
138           <para>Notez que des événements <command>SYNC</command> sont aussi générés
139           sur chaque noeud abonné. Cependant puisqu'ils ne contiennent
140           de données à répliquer par les autres noeuds, les évÚnements
141           <command>SYNC</command> des noeuds abonnés ne sont pas terriblement intéressant.</para>
142         </listitem>
143       </varlistentry>
144       <varlistentry>
145         <term><option>-g</option><replaceable class="parameter"> taille du groupe</replaceable></term>
146         <listitem>
147           <para>L'option <envar>sync_group_maxsize</envar> contrÃŽle la taille maximumale d'un groupe <command>SYNC</command>,
148           . La valeur par défaut est 6.  Ainsi, si un noeud particulier a
149           200 événements <command>SYNC</command>s de retard, il essaiera de les regrouper
150           par groupes dont la taille maximale sera <envar>sync_group_maxsize</envar>.
151           Ceci doit permettre de réduire le temps de lantence au démarrage (NdT : "overhead")
152           en réduisant le nombre de transactions à <quote>comitter</quote>.</para>
153           <para>La valeur par défaut est 6 est probablement adéquate pour les petits systÚmes
154           qui ne peuvent allouer que des quantités limitées de mémoire à
155           <application>slon</application>.  Si vous avez beaucoup de mémoire
156           il est raisonnable d'augmenter cette valeur, car cela augmentera
157           la quantité de travail réalisée à chaque transaction, et cela
158           permettra a un noeud abonné de rattraper plus vite son retard.</para>
159           <para>Les processus Slon sont souvent trÚs petits; même en cas
160           de valeur trÚs forte pour cette option, <application>slon</application>
161           devrait simplement grossir de quelques MB.</para>
162           <para>Le gros avantage d'augmenter ce paramÚtre est que
163           cela divise le nombre de transaction
164           <command>COMMIT</command>s; passer de 1 to 2 aura probablement
165           un impact considérable, mais le bénéfice se réduit progressivement
166           lorsque la taille des groupes est suffisamment large.
167           Il n'y aura probablement pas de différence notable entre 80 et 90.
168           Rendu à ce niveau, l'augmentation de cette
169           valeur dépend du fait que les grands ensembles de <command>SYNC</command>s
170           perturbent les curseurs de <envar>LOG</envar> en consommant
171           de plus en plus de mémoire et nécessitant plus d'efforts lors
172           des tris.</para>
173           <para>Dans &slony1; version 1.0, <application>slon</application> essaie
174           toujours de regrouper un maximum de <command>SYNC</command>s ensemble
175           , ce qui <emphasis>n'est pas</emphasis> idéal si la réplication
176           a été déstabilisée par de grosses mises à jour ( <emphasis>par exemple
177           </emphasis> : une transaction unique qui met à jour des centaines
178           de milliers de lignes) ou lorsque les <command>SYNC</command>s
179           ont été interrompus sur un noeud origine, ce qui fait
180           que les suivants sont volumineux. Vous rencontrerez
181           ce problÚme : en regroupant des <command>SYNC</command>s trÚs
182           larges, le processus <application>slon</application> peut échouer.
183           Au redémarrage, il essaie a nouveau de traiter ce large ensemble
184           de <command>SYNC</command>s, et il retombe sur le même problÚme
185           encore et encore jusqu'à ce qu'un administrateur interrompe tout cela
186           et change la valeur de l'option <option>-g</option> pour
187           sortir de cette situation d'<quote>inter-blocage</quote>.</para>
188           <para>Au contraire Avec &slony1; version 1.0, le démon <application>slon</application>
189           'adapte en augmentant <quote>progressivement</quote> le nombre de
190           <command>SYNC</command> par groupe, de 1 jusqu'à la valeur maximale.
191           Ainsi, si quelques <command>SYNC</command>s pausent problÚme, le démon
192           <application>slon</application> pourra (avec s'il est surveillé par
193           un processus chien de garde) traiter un par un ces évÚnements
194           <command>SYNC</command>s problématique, et ainsi éviter l'intervention
195           d'un administrateur.</para>
196         </listitem>
197       </varlistentry>
198       <varlistentry>
199         <term><option>-o</option><replaceable class="parameter"> temps de synchronisation souhaité</replaceable></term>
200         <listitem>
201           <para> La période <quote>maximale</quote> pour un groupe de <command>SYNC</command>s.</para>
202           <para> Si la réplication est en retard, le démon slon va progressivement augmenter le
203           nombre de <command>SYNC</command>s groupés ensemble, dans le but de
204           ne pas dépasser le temps spécifié par <envar>desired_sync_time</envar>.
205           (pour cela, Slon se base sur le temps pris par le
206           <emphasis>dernier</emphasis> group de <command>SYNC</command>s).</para>
207           <para> La valeur par défaut est 60000ms, c'est à dire une minute. </para>
208
209           <para> Ainsi vous pouvez prévoir (en tout cas espérer ! )
210           que vous aurez un <command>COMMIT</command> environ
211           toutes les minutes.</para>
212
213           <para> Cela n'est pas <emphasis>complÚtement</emphasis> prévisible,
214           car il est possible de demander une <emphasis>trÚs grosse mise à jour
215           </emphasis>,qui fera <quote>exploser</quote> la taille du
216           <command>SYNC</command>. Dans ce cas là, l'heuristique sera
217           rétablie pour le <emphasis>prochain</emphasis> groupe.</para>
218
219           <para> L'effet final est d'améliorer la façon dont
220           <productname>Slony-I</productname> gÚre les variations
221           du trafic.  En commençant avec 1 événement <command>SYNC</command>, puis
222           en augmentant progressivement, même si certaines variations seront
223           assez grandes pour provoquer un crash du processus <productname>PostgreSQL</productname>,
224           <productname>Slony-I</productname> redémarrera en traitant un seul <command>SYNC</command>
225           à la fois, afin que poursuivre le processus de réplication autant que possible.</para>
226         </listitem>
227       </varlistentry>     
228       <varlistentry>
229         <term><option>-c</option><replaceable class="parameter"> cycles de nettoyage</replaceable></term>
230         <listitem>
231           <para>La valeur <envar>vac_frequency</envar> indique la fréquence des opérations
232           <command>VACUUM</command> lors des cycles de nettoyage.</para>
233           <para>Positionner cette valeur à zéro pour désactiver les nettoyages
234           initiés par <application>slon</application>. Si vous utilisés un
235           mécanisme tel que <application>pg_autovacuum</application> pour
236           lancer les vacuums, vous n'aurez probablement pas besoin que
237           slon initie des vacuums de lui-même. Sinon, il existe des tables
238           utilisées par <productname>Slony-I</productname> qui collectent
239           <emphasis>beaucoup</emphasis> de tuples morts, et qui doivent
240           être nettoyées fréquemment, en particulier &pglistener;.</para>
241           <para> A partir de &slony1; version 1.1, cela change un peu; le processus
242           de nettoyage cherche, d'itération en itération, l'identifiant
243           de la plus ancienne transaction encore active dans le systÚme.
244           Si l'identifiant ne change pas entre deux itérations, alors
245           il existe une vieille transaction en activité, et donc un
246           <command>VACUUM</command> n'apportera rien de bon. A la place,
247           le processus de nettoyage déclenche simplement une opération <command>ANALYZE</command>
248           sur ces tables afin de mettre à jours les statistiques dans <envar>pg_statistics</envar>.</para>
249         </listitem>
250       </varlistentry>
251       <varlistentry>
252         <term><option>-p</option><replaceable class="parameter"> fichier du PID </replaceable></term>
253         <listitem>
254           <para>La variable <envar>pid_file</envar> contient le nom du fichier dans lequel le PID
255           (identifiant du processus) du démon <application>slon</application> est stocké.</para>
256           <para>Cela simplifie la création de scripts de surveillance des processus
257           <application>slon</application> qui s'exécute sur un hÃŽte.</para>
258         </listitem>
259       </varlistentry>
260       <varlistentry>
261         <term><option>-f</option><replaceable class="parameter"> fichier de configuration</replaceable></term>
262         <listitem>
263           <para>Fichier qui contient la configuration <application>slon</application>.</para>
264        
265           <para> La configuration configuration est  détaillée plus loin dans le chapitre <link
266           linkend="runtime-config">Configuration de Slon</link>. Si
267           vous avez défini un ensemble complexe de paramÚtre, ou si vous ne voulez
268           pas que les paramÚtres soient visibles dans les variable d'environnement
269           ( notamment les mots de passe ), il est plus pratique de placer une partie,
270           voire l'ensemble des paramÚtres dans un fichier de configuration.
271           Vous pouvez pouvez également placer les paramÚtres communs à tous les
272           processus slon dans un fichier de configuration partagé et définir
273           en ligne de commande d'autres paramÚtres que les informations de connexions.
274           Vous pouvez aussi créer un fichier de configuration pour chaque noeud.</para>
275         </listitem>
276       </varlistentry>
277       <varlistentry>
278         <term><option>-a</option><replaceable class="parameter"> répertoire des archives</replaceable></term>
279         <listitem>
280           <para>L'option <envar>archive_dir</envar> indique le dossier dans lequel on
281           place la séquence de fichiers archives contenant les événements <command>SYNC</command>
282           utilisés en mode &logshiplink;.</para>
283         </listitem>
284       </varlistentry>
285       <varlistentry>
286         <term><option>-x</option><replaceable class="parameter"> commande à appliquer pour l'archivage des journaux</replaceable></term>
287         <listitem>
288           <para>Le paramÚtre <envar>command_on_logarchive</envar> indique la commande qui doit
289           être exécutée à chaque fois qu'un fichier SYNC est correctement généré.</para>
290           <para> Voir le chapitre <xref linkend="slon-config-command-on-logarchive"/> pour plus de détails.</para>
291         </listitem>
292       </varlistentry>
293       <varlistentry>
294         <term><option>-q</option><replaceable class="parameter"> quitter en fonction d'un fournisseur </replaceable></term>
295         <listitem>
296           <para>L'option <envar>quit_sync_provider</envar> indique quel processus fournisseur
297           doit être surveiller afin d'arrêter la réplication aprÚs un événement donné.
298           Ceci doit être utilisé conjointement avec l'option
299           <option>-r</option> ci-dessous...</para>
300
301           <para> Cela permet de stopper la réplication sur un processus <application>slon</application>
302           aprÚs un certain point. </para>
303         </listitem>
304       </varlistentry>
305       <varlistentry>
306         <term><option>-r</option><replaceable class="parameter"> quitte aprÚs un numéro d'événement </replaceable></term>
307         <listitem>
308           <para>Le paramÚtre <envar>quit_sync_finalsync</envar> indique le numéro de l'événement
309           aprÚs lequel un processus de réplication doit se terminer. 
310           Ceci doit être utilisé conjointement avec l'option
311           <option>-q</option> ci-dessus...</para>
312         </listitem>
313       </varlistentry>
314       <varlistentry>
315         <term><option>-l</option><replaceable class="parameter">  interval de retard </replaceable></term>
316         <listitem>
317           <para>L'option <envar>lag_interval</envar> spécifie une valeur temporelle
318           ( en anglais ) telle que <command> 3 minutes </command>, <command> 4 hours </command>
319           ou <command> 2 days </command> qui indique que le temps de retard qu'un noeud doit avoir
320           par rapport à son fournisseur. Cela implique que les événements seront
321           ignorés tant que leur age sera inférieur à cet intervalle.</para>
322
323           <warning><para> Il y a un effet secondaire à ce retard;
324           Les événements qui demande que tous les noeuds se synchronisent,
325           notamment ceux qui sont produits lors d'une opération <xref linkend="stmtfailover"/>
326           et d'un <xref linkend="stmtmoveset"/>, devront attendre pendant cet interval
327           de temps.</para>
328
329           <para> C'est un comportement qui n'est pas idéal dans le cas d'une bascule
330           aprÚs une panne, ou lorsque l'on veut exécuter des scripts DDL ( <xref
331           linkend="stmtddlscript"/> ). </para>
332           </warning>
333         </listitem>
334       </varlistentry>
335     </variablelist>
336   </refsect1>
337   <refsect1>
338     <title>Valeur de retour ( "Exit Status" ) </title>
339     <para><application>slon</application> renvoie 0 dans le shell si il s'est terminé
340     normalement. En cas d'erreur fatale, il exécute la fonction <function>exit(-1)</function>
341     ( qui envoie en général un valeur de retour de 127 ou 255, suivant votre systÚme d'exploitation ).</para>
342   </refsect1>
343 </refentry>
Note: See TracBrowser for help on using the browser.