Skip to content

Commit

Permalink
Quelques corrections supplémentaires
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Aug 5, 2022
1 parent 5a4b06a commit f6d3aaa
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 32 deletions.
32 changes: 16 additions & 16 deletions postgresql/logical-replication.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,33 +51,33 @@
<listitem>
<para>
Déclencher des triggers pour des changements spécifiques lorsqu'ils
apparaissent sur la base de données abonnée;
apparaissent sur la base de données abonnée&nbsp;;
</para>
</listitem>

<listitem>
<para>
Réaliser la consolidation de plusieurs bases de données au sein d'une seule
(par exemple pour répondre à des problématiques analytiques);
(par exemple pour répondre à des problématiques analytiques)&nbsp;;
</para>
</listitem>

<listitem>
<para>
Répliquer entre des versions majeures différentes de PostgreSQL;
Répliquer entre des versions majeures différentes de PostgreSQL&nbsp;;
</para>
</listitem>

<listitem>
<para>
Répliquer des instances PostgreSQL sur des plateformes différentes (par
exemple de Linux à Windows);
exemple de Linux à Windows)&nbsp;;
</para>
</listitem>

<listitem>
<para>
Donner accès à des données répliquées à différents groupes d'utilisateurs;
Donner accès à des données répliquées à différents groupes d'utilisateurs&nbsp;;
</para>
</listitem>

Expand Down Expand Up @@ -305,7 +305,7 @@
Lorsqu'en créant un abonnement, le slot de réplication correspondant
existe déjà. Dans ce cas, l'abonnement peut être créé en utilisant
l'option <literal>create_slot = false</literal> pour réaliser
l'association avec le slot existant;
l'association avec le slot existant&nbsp;;
</para>
</listitem>

Expand All @@ -317,7 +317,7 @@
distant ne sera alors jamais contacté. C'est la méthode utilisée par
<application>pg_dump</application>. Le slot de réplication distant devra
alors être créé manuellement avant que l'abonnement ne puisse être
activé;
activé&nbsp;;
</para>
</listitem>

Expand All @@ -328,7 +328,7 @@
serveur différent et sera activée depuis cette nouvelle localisation.
Dans ce cas, il faut dissocier le slot de réplication de l'abonnement
correspondant en utilisant la commande <command>ALTER
SUBSCRIPTION</command> avant de supprimer l'abonnement;
SUBSCRIPTION</command> avant de supprimer l'abonnement&nbsp;;
</para>
</listitem>

Expand Down Expand Up @@ -748,13 +748,13 @@ test_sub=# SELECT * FROM t3;
<itemizedlist>
<listitem>
<para>
Une des publications n'a pas de filtres de lignes;
Une des publications n'a pas de filtres de lignes&nbsp;;
</para>
</listitem>
<listitem>
<para>
Une des publications a été créée en utilisant <literal>FOR ALL
TABLES</literal>. Cette clause n'autorise pas les filtres de lignes;
TABLES</literal>. Cette clause n'autorise pas les filtres de lignes&nbsp;;
</para>
</listitem>
<listitem>
Expand Down Expand Up @@ -1202,7 +1202,7 @@ DETAIL: Key (c)=(1) already exists.
CONTEXT: processing remote data for replication origin "pg_16395" during "INSERT" for replication target relation "public.test" in transaction 725 finished at 0/14C0378
</screen>
Le LSN de la transaction qui contient le changement violant la contrainte et
le nom d'origine de réplication peuvent être trouvé à partir du journal
le nom d'origine de réplication peuvent être trouvés à partir du journal
applicatif du serveur (LSN 0/14C0378 et origine de réplication
<literal>pg_16395</literal> dans le cas ci-dessus). La transaction qui a
produit le conflit peut être ignorée en utilisant l'instruction
Expand Down Expand Up @@ -1249,7 +1249,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
l'abonné mais ne correspondent pas à la structure de la table, la
réplication renverra une erreur jusqu'à ce que le schéma soit mis à jour.
Dans de nombreux cas, les erreurs intermittentes peuvent être évitées en
appliquant des modifications de schéma à l'abonné en premier;
appliquant des modifications de schéma à l'abonné en premier&nbsp;;
</para>
</listitem>

Expand All @@ -1266,7 +1266,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
alors les séquences auront besoin d'être mises à jour à leur dernières
valeurs, soit en copiant les données courantes du publieur (peut-être en
utilisant <command>pg_dump</command>), soit en déterminant une valeur
suffisamment haute à partir des données de la table;
suffisamment haute à partir des données de la table&nbsp;;
</para>
</listitem>

Expand All @@ -1283,15 +1283,15 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
font partie de la même souscription. Cependant, si certaines tables à
tronquer ont des clés étrangères vers des tables qui ne font pas partie de
la même souscription, alors l'application de l'action truncate échouera sur
le serveur abonné;
le serveur abonné&nbsp;;
</para>
</listitem>

<listitem>
<para>
Les Large Objects (voir <xref linkend="largeobjects"/>) ne sont pas
répliqués. Il n'y a pas de contournement pour ça, en dehors d'enregistrer
les données dans des tables normales;
les données dans des tables normales&nbsp;;
</para>
</listitem>

Expand All @@ -1300,7 +1300,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
La réplication est seulement supportée par les tables, y compris les tables
partitionnées. Toute tentative de répliquer d'autres types de relation,
comme les vues, les vues matérialisées ou les tables externes, résultera en
une erreur;
une erreur&nbsp;;
</para>
</listitem>

Expand Down
33 changes: 17 additions & 16 deletions postgresql/logicaldecoding.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ postgres=*# INSERT INTO data(data) VALUES('5');
postgres=*# PREPARE TRANSACTION 'test_prepared1';

postgres=# SELECT * FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL);
lsn | xid | data
lsn | xid | data
-----------+-----+---------------------------------------------------------
0/1689DC0 | 529 | BEGIN 529
0/1689DC0 | 529 | table public.data: INSERT: id[integer]:3 data[text]:'5'
Expand All @@ -214,7 +214,7 @@ postgres=# SELECT * FROM pg_logical_slot_get_changes('regression_slot', NULL, NU

postgres=# COMMIT PREPARED 'test_prepared1';
postgres=# select * from pg_logical_slot_get_changes('regression_slot', NULL, NULL);
lsn | xid | data
lsn | xid | data
-----------+-----+--------------------------------------------
0/168A060 | 529 | COMMIT PREPARED 'test_prepared1', txid 529
(4 row)
Expand All @@ -224,7 +224,7 @@ postgres=# BEGIN;
postgres=*# INSERT INTO data(data) VALUES('6');
postgres=*# PREPARE TRANSACTION 'test_prepared2';
postgres=# select * from pg_logical_slot_get_changes('regression_slot', NULL, NULL);
lsn | xid | data
lsn | xid | data
-----------+-----+---------------------------------------------------------
0/168A180 | 530 | BEGIN 530
0/168A1E8 | 530 | table public.data: INSERT: id[integer]:4 data[text]:'6'
Expand All @@ -233,18 +233,18 @@ postgres=# select * from pg_logical_slot_get_changes('regression_slot', NULL, NU

postgres=# ROLLBACK PREPARED 'test_prepared2';
postgres=# select * from pg_logical_slot_get_changes('regression_slot', NULL, NULL);
lsn | xid | data
lsn | xid | data
-----------+-----+----------------------------------------------
0/168A4B8 | 530 | ROLLBACK PREPARED 'test_prepared2', txid 530
(1 row)</programlisting>
</sect1>

<sect1 id="logicaldecoding-explanation">
<title>Concepts de décodage logique</title>

<sect2>
<title>Décodage logique</title>

<indexterm>
<primary>Décodage logique</primary>
</indexterm>
Expand Down Expand Up @@ -323,7 +323,7 @@ postgres=# select * from pg_logical_slot_get_changes('regression_slot', NULL, NU
<para>
Un slot de réplication logique ne sait rien sur l'état du ou des
destinataire(s). Il est même possible d'avoir plusieurs destinataires
différents utilisant un même slot à des moments différents;&nbsp; Ils ne
différents utilisant un même slot à des moments différents&nbsp;; ils ne
recevront que les changements à partir du moment où le dernier
destinataire a arrêté de les consommer. Un seul destinataire peut
consommer les changements d'un slot à un instant donné.
Expand Down Expand Up @@ -756,7 +756,7 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);<
<parameter>change</parameter> décrivant les modifications de la ligne y est
passée.
</para>

<note>
<para>
Seuls les changements dans les tables définies par les utilisateurs qui
Expand Down Expand Up @@ -840,7 +840,7 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);<
);</programlisting>

Le paramètre <parameter>txn</parameter> contient des méta-informations
sur la transaction, comme l'horodatage de la validation de la transaction
sur la transaction, comme l'horodatage de la validation de la transaction
et son identifiant (XID). Notez néanmoins qu'il peut être NULL
quand le message n'est pas transactionnel et que le XID n'a pas encore
été affecté dans la transaction qui a tracé le message. Le
Expand Down Expand Up @@ -878,7 +878,7 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);<
PREPARED</command>. Pour signaler que le décodage doit être ignoré,
renvoyez <literal>true</literal>&nbsp;; <literal>false</literal> dans le
cas contraire. Quand la fonction callback est définie,
<literal>false</literal> est supposé (autrement dit, il n'y a pas de
<literal>false</literal> est supposé (autrement dit, il n'y a pas de
filtrage et toutes les transactions utilisant la validation en deux phases
sont décodées aussi en deux phases).

Expand Down Expand Up @@ -1044,7 +1044,7 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);<
XLogRecPtr commit_lsn);</programlisting>
</para>
</sect3>

<sect3 id="logicaldecoding-output-plugin-stream-change">
<title>Fonction de changement du flux</title>

Expand Down Expand Up @@ -1200,30 +1200,31 @@ OutputPluginWrite(ctx, true);</programlisting>
<listitem>
<para>
Lancer une commande <command>LOCK</command> exclusive sur
<structname>pg_class</structname> dans une transaction;
<structname>pg_class</structname> dans une transaction&nbsp;;
</para>
</listitem>

<listitem>
<para>
Exécuter une commande <command>CLUSTER</command> sur
<structname>pg_class</structname> dans une transaction;
<structname>pg_class</structname> dans une transaction&nbsp;;
</para>
</listitem>

<listitem>
<para>
<command>PREPARE TRANSACTION</command> après une commande
<command>LOCK</command> sur <structname>pg_class</structname> et
autoriser le décodage logiques des transactions en deux phases;
</para> </listitem>
autoriser le décodage logiques des transactions en deux phases&nbsp;;
</para>
</listitem>

<listitem>
<para>
<command>PREPARE TRANSACTION</command> après une commande
<command>CLUSTER</command> sur <structname>pg_trigger</structname> et
autoriser le décodage logiques des transactions en deux phases. Ceci
amènera un deadlock seulement quand la table publiée a un trigger;
amènera un deadlock seulement quand la table publiée a un trigger&nbsp;;
</para>
</listitem>

Expand Down

0 comments on commit f6d3aaa

Please sign in to comment.