forked from gleu/pgdocs_fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
logshipping.xml
702 lines (616 loc) · 23.3 KB
/
logshipping.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
<?xml version="1.0" encoding="UTF-8"?>
<!-- Dernière modification
le $Date$
par $Author$
révision $Revision$ -->
<sect1 id="logshipping">
<title>Log Shipping</title>
<indexterm><primary>log shipping</primary></indexterm>
<para>
Une des nouvelles fonctionnalités de la version 1.1, qui ne fut réellement
stable qu'à partir de la version 1.2.11, est la possibilité de regrouper
les mises à jour dans des fichiers de journalisation qui sont stockés dans
un répertoire d'attente.
</para>
<para>
Ces fichiers de journalisation peuvent alors être transférés selon la
méthode de votre choix vers le <quote>serveur esclave</quote>, que ce soit
via FTP, rsync ou même avec une <quote>clé USB</quote> d'1 Go
transportée par avion.
</para>
<para>
Il y a plein de choses intéressantes à faire avec un tel flux de données,
en particulier :
<itemizedlist>
<listitem>
<para>
Répliquer des nœuds qui <emphasis>ne peuvent pas</emphasis> être
securisés ;
</para>
</listitem>
<listitem>
<para>
Répliquer dans des lieux où il n'est pas possible d'établir des
communications bidirectionnelles ;
</para>
</listitem>
<listitem>
<para>
Utiliser une nouvelle forme de <acronym>PITR</acronym> (Point In Time
Recovery) qui filtre les transactions composées uniquement de lectures
et celles qui mettent à jour des tables qui ne sont pas
intéressantes ;
</para>
</listitem>
<listitem>
<para>
En cas de désastre, vous pouvez regarder à l'intérieur des fichiers de
journalisation pour voir le détail des requêtes ;
</para>
<para>
Cela rend le log shipping potentiellement utile même si vous n'avez pas
réellement l'intention de créer un nœud répliqué ;
</para>
</listitem>
<listitem>
<para>
C'est une méthode très subtile pour charger des données en vue de
tests ;
</para>
</listitem>
<listitem>
<para>
Nous avons un système <quote>escrow</quote> qui serait incroyablement
moins cher avec du log shipping ;
</para>
</listitem>
<listitem>
<para>
Vous pouvez appliquer des triggers sur un <quote>nœud
déconnecté</quote> pour effectuer des traitements supplémentaires sur
les données.
</para>
<para>
Par exemple, vous pouvez prendre une base relativement
<quote>statique</quote> et la transformer en une table
<quote>temporelle</quote>, en utilisant des triggers qui implémentent
les techniques décrites dans <citation>Developing Time-Oriented
Database Applications in SQL</citation> de <ulink
url="http://www.cs.arizona.edu/people/rts/">Richard T. Snodgrass</ulink>.
</para>
</listitem>
</itemizedlist>
</para>
<qandaset>
<qandaentry>
<question>
<para>
Où sont générés les <quote>fichiers de journalisation</quote> d'un
ensemble de réplication donné ?
</para>
</question>
<answer>
<para>
Chaque nœud abonné <link linkend="slon">slon</link> peut les
générer en ajoutant l'option <option>-a</option>.
</para>
<note>
<para>
Notez que cela implique que, pour utiliser le log shipping, vous
devez avoir au moins un nœud abonné.
</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Que se passe-t-il lors d'un <xref linkend="stmtfailover"/>/<xref
linkend="stmtmoveset"/> ?
</para>
</question>
<answer>
<para>
Rien de spécial. Tant que le nœud d'archivage reste un abonné,
il continue à produire des fichiers de journalisation.
</para>
</answer>
<answer>
<warning>
<para>
Si le nœud d'archivage devient l'origine, il continuera à
produire des fichiers de journalisation.
</para>
</warning>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Que se passe-t-il lorsqu'il n'y a plus assez d'espace pour les fichiers
de journalisation ?
</para>
</question>
<answer>
<para>
Le nœud n'accepte plus les événements <command>SYNC</command>
jusqu'à ce que le problème soit réglé. La base de donnée qui est
dupliquée tombe également en panne.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Comment réaliser un abonnement ?
</para>
</question>
<answer>
<para>
Le script dans <filename>tools</filename> nommé
<application>slony1_dump.sh</application> est un script shell qui
exporte l'état <quote>actuel</quote> du nœud abonné.
</para>
<para>
Vous devez lancer le démon <application><link
linkend="slon">slon</link></application> pour le nœud abonné
avec le log shipping activé. À tout moment, vous pouvez lancer la
commande <application>slony1_dump.sh</application>, qui va récupérer
l'état de l'abonné sous la forme d'événements <command>SYNC</command>.
Une fois que l'export est complet, tous les logs <command>SYNC</command>
produits à partir du moment où l'export a <emphasis>démarré</emphasis>
seront ajoutés à l'export afin d'obtenir un <quote>nœud abonné
au log shipping</quote>.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Quelles sont les limitations du log shipping ?
</para>
</question>
<answer>
<para>
Dans la version initiale, il y avait beaucoup de limitations.
Heureusement, au fur et à mesure des nouvelles versions, certaines de
ces limitations ont été corrigées ou supprimées.
</para>
</answer>
<answer>
<para>
La fonctionnalité du log shipping revient à <quote>sniffer</quote>
les données appliquées sur un nœud abonné. En conséquence,
vous devez avoir au moins un nœud <quote>standard</quote> ;
vous ne pouvez pas avoir un cluster composé seulement d'une origine et
d'un ensemble de <quote>nœuds de log shipping</quote>.
</para>
</answer>
<answer>
<para>
Le <quote>nœud de log shipping</quote> traque la totalité du
trafic allant vers un abonné. Vous pouvez séparer les choses lorsqu'il
y a plusieurs ensembles de réplication.
</para>
</answer>
<answer>
<para>
Actuellement, le <quote>nœud de log shipping</quote> traque
uniquement les événements <command>SYNC</command>. Cela devrait être
suffisant pour gérer <emphasis>certains</emphasis> changements de la
configuration du cluster, mais pas tous.
</para>
<para>
Une bonne partie des types événements <emphasis>sont</emphasis> gérés
afin que le log shipping puissent les traiter :
<itemizedlist>
<listitem>
<para>
Bien évidemment, les événements <command>SYNC </command> sont
gérés.
</para>
</listitem>
<listitem>
<para>
Les <command>DDL_SCRIPT</command> sont gérés.
</para>
</listitem>
<listitem>
<para>
<command>UNSUBSCRIBE_SET</command>
</para>
<para>
Cet événement, tout comme <command>SUBSCRIBE_SET</command>, n'est
pas géré par le nœud de log shipping. Mais cette commande,
par définition, implique que les événements <command>SYNC</command>
ne contiennent plus de mises à jour pour l'ensemble de réplication.
</para>
<para>
De la même façon, <command>SET_DROP_TABLE</command>,
<command>SET_DROP_SEQUENCE</command>,
<command>SET_MOVE_TABLE</command>,
<command>SET_MOVE_SEQUENCE</command>, <command>DROP_SET</command>,
<command>MERGE_SET</command> seront gérés de manière
<quote>appropriée</quote>.
</para>
</listitem>
<listitem>
<para>
<command>SUBSCRIBE_SET</command>
</para>
<para>
Malheureusement, des choses <quote>étranges</quote> surviennent
lorsqu'on gère cette commande... Quand un
<command>SUBSCRIBE_SET</command> se produit, cela déclenche un
évènement nommé <command>ENABLE_SUBSCRIPTION</command> qui est
levé et traité uniquement sur le nœud abonné.
</para>
<para>
<command>SUBSCRIBE_SET</command> est vraiment un événement
très simple. Il se contente de <emphasis>déclarer</emphasis>
qu'un nœud s'abonne à un ensemble donné via un fournisseur
donné. <emphasis>Il ne copie pas les données !</emphasis>
</para>
<para>
Le cœur du travail de souscription est réalisé par
<command>ENABLE_SUBSCRIPTION</command>, qui est un événement
déclenché sur le nœud local, et non pas dans la même
séquence que les autres événements en provenance des autres
nœuds (notament le fournisseur de données).
</para>
<para>
Avec la modifications du traitement des fichiers de journalisation
intervenus dans la version 1.2.11, ceci ne présente plus de
problèmes pour l'utilisateur.
</para>
</listitem>
<listitem>
<para>
Les différents événements impliqués dans la configuration d'un
nœud sont inutiles dans le cadre du log shipping :
<command>STORE_NODE</command>,
<command>ENABLE_NODE</command>,
<command>DROP_NODE</command>,
<command>STORE_PATH</command>,
<command>DROP_PATH</command>,
<command>STORE_LISTEN</command>,
<command>DROP_LISTEN</command>.
</para>
</listitem>
<listitem>
<para>
Les événements impliqués dans la configuration des ensembles de
réplication sont également inutiles :
<command>STORE_SET</command>,
<command>SET_ADD_TABLE</command>,
<command>SET_ADD_SEQUENCE</command>,
<command>STORE_TRIGGER</command>,
<command>DROP_TRIGGER</command>,
<command>TABLE_ADD_KEY</command>
</para>
</listitem>
</itemizedlist>
</para>
</answer>
<answer>
<para>
Il serait pratique de transformer un nœud de <quote>log
shipping</quote> en un nœud &slony1; complètement fonctionnel sur
lequel on pourrait basculer. Cela serait utile (par exemple) pour un
cluster de 6 nœuds ; cela permettrait de commencer par
créer un nœud abonné puis d'utiliser le log shipping pour
construire les 4 autres nœuds en parallèle.
</para>
<para>
Cette utilisation n'est pas possible, mais on peut ajouter la
configuration &slony1; dans un nœud, et le promouvoir en tant
que nouveau nœud. Encore une fois, c'est une simple question de
programmation (mais ça n'est pas forcément si simple)...
</para>
</answer>
</qandaentry>
</qandaset>
<sect2>
<title>Conseils d'utilisation</title>
<note>
<para>
Voici quelques notes plus ou moins structurées sur l'utilisation idéale
du log shipping...
</para>
</note>
<itemizedlist>
<listitem>
<para>
Vous ne <emphasis>devez</emphasis> pas appliquer aveuglément les fichiers
<command>SYNC</command> car on ne peut pas prendre un fichier
<command>SYNC</command> au hasard. Si ce n'est pas un fichier approprié,
alors la commande <function>setsyncTracking_offline()</function> échouera
et votre session <application>psql</application> recevra la commande
<command>ABORT</command>, puis recherchera dans le fichier
<command>SYNC</command> un <command>COMMIT</command> ou un
<command>ROLLBACK</command> afin de continuer vers la prochaine
transaction.
</para>
<para>
Mais nous <emphasis>savons</emphasis> que la totalité du contenu du
fichier va échouer ! Il est futile de continuer à analyser
le reste du fichier.
</para>
<para>
Voici une meilleure idée :
<itemizedlist>
<listitem>
<para>
Tout d'abord, lire les premières lignes du fichier, jusqu'à l'appel
à la fonction <function>setsyncTracking_offline()</function>.
</para>
</listitem>
<listitem>
<para>
Essayez de l'appliquer jusque là.
</para>
</listitem>
<listitem>
<para>
Si cela échoue, alors il est futile de continuer ; lancez
un <command>ROLLBACK</command> sur la transaction, et essayez
éventuellement un autre fichier.
</para>
</listitem>
<listitem>
<para>
Si l'appel à <function>setsyncTracking_offline()</function>
fonctionne, alors vous avez trouver le bon fichier de
<command>SYNC</command> et vous pouvez l'appliquer. Vous devrez
probablement faire un <command>ROLLBACK</command> sur la
transaction, puis utiliser <application>psql</application> pour
appliquer la totalité des mises à jours contenues dans le fichier.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Afin de faciliter la récupération des premières lignes des fichiers sync,
le format a été conçu pour qu'une ligne de pointillées indique la fin
de <quote>l'en-tête</quote> :
<programlisting>-- Slony-I log shipping archive
-- Node 11, Event 656
start transaction;
select "_T1".setsyncTracking_offline(1, '655', '656', '2007-09-23 18:37:40.206342');
-- end of log archiving header
</programlisting>
</para>
</listitem>
<listitem>
<para>
Notez que l'en-tête inclut l'horodatage qui témoigne de la date de
l'événement SYNC.
<programlisting>-- Slony-I log shipping archive
-- Node 11, Event 109
start transaction;
select "_T1".setsyncTracking_offline(1, '96', '109', '2007-09-23 19:01:31.267403');
-- end of log archiving header</programlisting>
</para>
<para>
Cet horodatage représente la date où le <command>SYNC</command> a été
déclenché sur le nœud d'origine.
</para>
<para>
La valeur est stockée dans la table de configuration sl_setsync_offline.
</para>
<para>
Si vous construisez une base dynamique, cela représente probablement le
moment où vous voudrez appliquer toute les données d'une transaction de
log shipping.
</para>
</listitem>
<listitem>
<para>
Vous pouvez trouver plus d'informations sur comment l'activité du
nœud est enregistré dans <xref linkend="logshiplog"/>.
</para>
</listitem>
</itemizedlist>
<para>
À partir de la version 1.2.11, il existe une méthode <emphasis>encore
meilleure</emphasis> pour appliquer les fichiers de journalisation car
leur règle de nommage est devenu plus compréhensible.
</para>
<itemizedlist>
<listitem>
<para>
Les traces, sur le nœud de log shipping, qui indiquent le fichier
de journalisation le plus récemment traité, sont stockées dans la table
<envar>sl_archive_tracking</envar>.
</para>
<para>
Ainsi, vous pouvez prédire l'identifiant du prochain fichier de
journalisation en incrémentant le dernier identifiant de cette table.
</para>
</listitem>
<listitem>
<para>
Il existe néanmoins des variations dans le nommage des fichiers, en
fonction du nombre de nœuds qui composent le cluster. Tous les
nœuds produisent régulièrement des événements <command>SYNC</command>,
même s'ils ne sont pas le nœud origine, et le système de log
shipping génère des logs pour ces événements.
</para>
<para>
En conséquence, lorsqu'on cherche le fichier de journalisation suivant,
il est nécessaire de chercher de la manière suivante :
<programlisting>ARCHIVEDIR=/var/spool/slony/archivelogs/node4
SLONYCLUSTER=mon_cluster
PGDATABASE=logshipdb
PGHOST=logshiphost
NEXTQUERY="select at_counter+1 from \"_${SLONYCLUSTER}\".sl_archive_tracking;"
nextseq=`psql -d ${PGDATABASE} -h ${PGHOST} -A -t -c "${NEXTQUERY}"
filespec=`printf "slony1_log_*_%20d.sql"
for file in `find $ARCHIVEDIR -name "${filespec}"; do
psql -d ${PGDATABASE} -h ${PGHOST} -f ${file}
done</programlisting>
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title><application>find-triggers-to-deactivate.sh</application></title>
<indexterm><primary>désactivation des triggers</primary></indexterm>
<para>
Le <ulink url="http://www.slony.info/bugzilla/show_bug.cgi?id=19">bug
#19</ulink> indique que le dump d'un schéma peut contenir des triggers
et des règles que l'on ne souhaite pas activer sur un nœud de log
shipping.
</para>
<para>
L'outil <filename> tools/find-triggers-to-deactivate.sh</filename> a été
créé pour assister l'utilisateur dans cette tache. Il peut être lancé sur un
nœud qui sera utilisé comme schéma source, et il liste les règles et
les triggers, présents sur ce nœud, qui devraient être désactivés.
</para>
<para>
Cela comprend le trigger <function>logtrigger</function> et
<function>denyaccess</function> qui sont normalement exclut du schéma extrait
avec pgdump. Il est toutefois de la responsabilité de l'administrateur de
vérifier que des triggers comme ceux-ci sont bien retirés du réplicat du log
shipping.
</para>
</sect2>
<sect2>
<title>L'outil <application>slony_logshipper</application></title>
<para>
À partir de la version 1.2.12, &slony1; a un outil conçu pour aider à
appliquer les logs, nommé <application>slony_logshipper</application>.
Il fonctionne avec trois types de paramètres :
</para>
<itemizedlist>
<listitem>
<para>des options :</para>
<itemizedlist>
<listitem><para><option>h</option></para> <para>affiche cette aide et se termine</para></listitem>
<listitem><para><option>v</option></para> <para>affiche la version et se termine</para></listitem>
<listitem><para><option>q</option></para> <para>mode silencieux</para></listitem>
<listitem><para><option>l</option></para> <para>ordonne au démon de rouvrir le fichier</para></listitem>
<listitem><para><option>r</option></para> <para>ordonne au démon de continuer après une erreur</para></listitem>
<listitem><para><option>t</option></para> <para>ordonne au démon d'entrer en mode d'arrêt intelligent ("smart shutdown")</para> </listitem>
<listitem><para><option>T</option></para> <para>ordonne au démon d'entrer en mode d'arrêt immédiat</para></listitem>
<listitem><para><option>c</option></para> <para>détruit les sémaphores existantes et la file d'attente des messages (utiliser avec précaution)</para></listitem>
<listitem><para><option>f</option></para> <para>reste au premier plan (ne fonctionne pas en mode démon)</para></listitem>
<listitem><para><option>w</option></para> <para>entre immédiatement en mode d'arrêt intelligent</para></listitem>
</itemizedlist>
</listitem>
<listitem>
<para>un fichier de configuration spécifique</para>
<para>Ce fichier est composé des paramètres suivants :</para>
<itemizedlist>
<listitem>
<para><command>logfile = './offline_logs/logshipper.log';</command></para>
<para>L'endroit où le log shipper laissera ses traces d'exécutions.</para>
</listitem>
<listitem>
<para><command>cluster name = 'T1';</command></para>
<para>le nom du cluster</para>
</listitem>
<listitem>
<para><command>destination database = 'dbname=slony_test3';</command></para>
<para>
Le paramètre conninfo optionnel pour se connecter à la base
destination. Si ce paramètre est fourni, le log shipper se connectera
à cette base et y appliquera les fichiers de journalisation.
</para>
</listitem>
<listitem>
<para><command>archive dir = './offline_logs';</command></para>
<para>
Le répertoire d'archive est obligatoire lorsqu'on est en mode
<quote>connecté à une base de données</quote> afin de pouvoir
parcourir un nœud à la recherche d'archives manquantes (ou non appliquées).
</para>
</listitem>
<listitem>
<para><command>destination dir = './offline_result';</command></para>
<para>
Si ce paramètre est défini, le log shipper écrira les résultats du
traitement des données à l'intérieur de fichiers de journalisation
placés dans ce répertoire.
</para>
</listitem>
<listitem>
<para><command>max archives = 3600;</command></para>
<para>
Ce paramètre lutte contre d'éventuelles fuites mémoire ; le
démon entrera en mode d'arrêt intelligent(<quote>smart shutdown</quote>)
automatiquement après avoir traité ce nombre d'archives.
</para>
</listitem>
<listitem>
<para><command>ignore table "public"."history";</command></para>
<para>
On peut exclure certaines tables du système de log shipping.
</para>
</listitem>
<listitem>
<para><command>ignore namespace "public";</command></para>
<para>
On peut exclure un espace de noms du système de réplication.
</para>
</listitem>
<listitem>
<para><command>rename namespace "public"."history" to "site_001"."history";</command></para>
<para>
On peut renommer des tables spécifiques.
</para>
</listitem>
<listitem>
<para><command>rename namespace "public" to "site_001";</command></para>
<para>
On peut renommer un espace de noms.
</para>
</listitem>
<listitem>
<para>
<command>post processing command = 'gzip -9 $inarchive';</command>
</para>
<para>
Les commandes de pré-traitement et post-traitement sont exécutées
via la fonction <function>system(3)</function>.
</para>
</listitem>
</itemizedlist>
<para>
Un <quote>@</quote> placé devant le nom de la commande permet d'ignorer
un code de retour. Sinon, tout code de retour différent de zéro sera
traité comme une erreur et provoquera l'arrêt du processus.
</para>
<para>
Par ailleurs, les commandes de pré-traitement et de post-traitement ont
accès à deux variables spéciales :
</para>
<itemizedlist>
<listitem><para><envar>$inarchive</envar> - indique le nom du fichier d'archive en entrée</para></listitem>
<listitem><para><envar>$outnarchive</envar> - indique le nom du fichier d'archive en sortie</para></listitem>
</itemizedlist>
</listitem>
<listitem>
<para><command>error command = ' ( echo "archive=$inarchive" echo "error messages:" echo "$errortext" ) | mail -s "Slony log shipping failed" postgres@localhost ';</command></para>
<para>
La commande d'erreur indique quelle commande lancer lorsqu'une erreur est
rencontrée. Tout l'archivage réalisé depuis le dernier archivage traité
avec succès est disponible dans la variable <envar>$errortext</envar>.
</para>
<para>
Dans l'exemple donné, un courriel est envoyé à l'administrateur lorsqu'une
erreur est rencontrée.
</para>
</listitem>
<listitem>
<para>Noms des fichiers d'archive</para>
<para>
Chaque nom de fichier est ajouté à la file d'attente des messages SystemV
afin qu'un processus <application>slony_logshipper</application> le
traite.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>