@@ -33,7 +33,7 @@ ____________________________________________________________________________-->
33
33
</para>
34
34
____________________________________________________________________________-->
35
35
<para>
36
- 逻辑复制使用一种<firstterm>发布</firstterm>和<firstterm>订阅</firstterm>模型,其中有一个或者更多<firstterm>订阅者</firstterm>订阅一个<firstterm>发布者</firstterm>节点上的一个或者更多<firstterm>publication </firstterm> 。订阅者从它们所订阅的publication拉取数据并且可能后续重新发布这些数据以允许级联复制或者更复杂的配置 。
36
+ 逻辑复制使用一种<firstterm>发布</firstterm>和<firstterm>订阅</firstterm>模型,其中有一个或者更多<firstterm>订阅者</firstterm>订阅一个<firstterm>发布者</firstterm>节点上的一个或者更多<firstterm>发布 </firstterm> 。订阅者从它们所订阅的发布拉取数据并且可能后续重新发布这些数据以允许级联复制或者更复杂的配置 。
37
37
</para>
38
38
39
39
<!--==========================orignal english content==========================
@@ -48,7 +48,7 @@ ____________________________________________________________________________-->
48
48
</para>
49
49
____________________________________________________________________________-->
50
50
<para>
51
- 一个表的逻辑复制通常开始于对发布者服务器上的数据取得一个快照并且将快照拷贝给订阅者。一旦这项工作完成,发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据,这样在一个订阅中能够保证publication的事务一致性 。这种数据复制的方法有时候也被称为事务性复制。
51
+ 一个表的逻辑复制通常开始于对发布者服务器上的数据取得一个快照并且将快照拷贝给订阅者。一旦这项工作完成,发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据,这样在一个订阅中能够保证发布的事务一致性 。这种数据复制的方法有时候也被称为事务性复制。
52
52
</para>
53
53
54
54
<!--==========================orignal english content==========================
@@ -163,14 +163,14 @@ ____________________________________________________________________________-->
163
163
</para>
164
164
____________________________________________________________________________-->
165
165
<para>
166
- 订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的publication 。当订阅者被应用当作只读时,单一的订阅中不会有冲突。在另一方面,如果应用或者对相同表集合的订阅者执行了其他的写动作,冲突可能会发生。
166
+ 订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的发布 。当订阅者被应用当作只读时,单一的订阅中不会有冲突。在另一方面,如果应用或者对相同表集合的订阅者执行了其他的写动作,冲突可能会发生。
167
167
</para>
168
168
169
169
<sect1 id="logical-replication-publication">
170
170
<!--==========================orignal english content==========================
171
171
<title>Publication</title>
172
172
____________________________________________________________________________-->
173
- <title>Publication(发布) </title>
173
+ <title>发布 </title>
174
174
175
175
<!--==========================orignal english content==========================
176
176
<para>
@@ -182,7 +182,7 @@ ____________________________________________________________________________-->
182
182
</para>
183
183
____________________________________________________________________________-->
184
184
<para>
185
- <firstterm>Publication </firstterm>可以被定义在任何物理复制的主服务器上。定义有publication的节点被称为 <firstterm>发布者</firstterm>。publication是从一个表或者一组表生成的改变的集合 ,也可以被描述为更改集合或者复制集合。每个publication都只存在于一个数据库中 。
185
+ <firstterm>发布 </firstterm>可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为 <firstterm>发布者</firstterm>。发布是从一个表或者一组表生成的改变的集合 ,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中 。
186
186
</para>
187
187
188
188
<!--==========================orignal english content==========================
@@ -195,7 +195,7 @@ ____________________________________________________________________________-->
195
195
</para>
196
196
____________________________________________________________________________-->
197
197
<para>
198
- Publication不同于方案并且不影响表如何被访问 。如果需要,每个表都可以被加入到多个publication 。当前,publication只能包含表。对象必须被明确地加入到publication,除非publication是用 <literal>ALL TABLES</literal>创建的。
198
+ 发布与模式不同,不会影响表的访问方式 。如果需要,每个表都可以被加入到多个发布 。当前,发布只能包含表。对象必须被明确地加入到发布,除非发布是用 <literal>ALL TABLES</literal>创建的。
199
199
</para>
200
200
201
201
<!--==========================orignal english content==========================
@@ -234,7 +234,7 @@ ____________________________________________________________________________-->
234
234
</para>
235
235
____________________________________________________________________________-->
236
236
<para>
237
- 为了能够复制<command>UPDATE</command>和<command>DELETE</command>操作,被发布的表必须配置有一个<quote>复制标识</quote>,这样在订阅者那一端才能标识对于更新或删除合适的行。默认情况下,复制标识就是主键(如果有主键)。也可以在复制标识上设置另一个唯一索引(有特定的额外要求)。如果表没有合适的键,那么可以设置成复制标识<quote>full</quote>,它表示整个行都成为那个键。不过,这样做效率很低,只有在没有其他方案的情况下才应该使用。如果在发布者端设置了<quote>full</quote>之外的复制标识,在订阅者端也必须设置一个复制标识,它应该由相同的或者少一些的列组成。如何设置复制标识的细节请参考<xref linkend="sql-createtable-replica-identity"/>。如果在复制<command>UPDATE</command>或<command>DELETE</command>操作的publication中加入了没有复制标识的表 ,那么订阅者上后续的<command>UPDATE</command>或<command>DELETE</command>操作将导致错误。不管有没有复制标识,<command>INSERT</command>操作都能继续下去。
237
+ 为了能够复制<command>UPDATE</command>和<command>DELETE</command>操作,被发布的表必须配置有一个<quote>复制标识</quote>,这样在订阅者那一端才能标识对于更新或删除合适的行。默认情况下,复制标识就是主键(如果有主键)。也可以在复制标识上设置另一个唯一索引(有特定的额外要求)。如果表没有合适的键,那么可以设置成复制标识<quote>full</quote>,它表示整个行都成为那个键。不过,这样做效率很低,只有在没有其他方案的情况下才应该使用。如果在发布者端设置了<quote>full</quote>之外的复制标识,在订阅者端也必须设置一个复制标识,它应该由相同的或者少一些的列组成。如何设置复制标识的细节请参考<xref linkend="sql-createtable-replica-identity"/>。如果在复制<command>UPDATE</command>或<command>DELETE</command>操作的发布中加入了没有复制标识的表 ,那么订阅者上后续的<command>UPDATE</command>或<command>DELETE</command>操作将导致错误。不管有没有复制标识,<command>INSERT</command>操作都能继续下去。
238
238
</para>
239
239
240
240
<!--==========================orignal english content==========================
@@ -243,7 +243,7 @@ ____________________________________________________________________________-->
243
243
</para>
244
244
____________________________________________________________________________-->
245
245
<para>
246
- 每一个publication都可以由多个订阅者 。
246
+ 每一个发布都可以由多个订阅者 。
247
247
</para>
248
248
249
249
<!--==========================orignal english content==========================
@@ -286,7 +286,7 @@ ____________________________________________________________________________-->
286
286
</para>
287
287
____________________________________________________________________________-->
288
288
<para>
289
- <firstterm>订阅</firstterm>是逻辑复制的下游端。订阅被定义在其中的节点被称为<firstterm>订阅者</firstterm>。一个订阅会定义到另一个数据库的连接以及它想要订阅的publication集合 (一个或者多个)。
289
+ <firstterm>订阅</firstterm>是逻辑复制的下游端。订阅被定义在其中的节点被称为<firstterm>订阅者</firstterm>。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合 (一个或者多个)。
290
290
</para>
291
291
292
292
<!--==========================orignal english content==========================
@@ -297,7 +297,7 @@ ____________________________________________________________________________-->
297
297
</para>
298
298
____________________________________________________________________________-->
299
299
<para>
300
- 订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的publication 。
300
+ 订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的发布 。
301
301
</para>
302
302
303
303
<!--==========================orignal english content==========================
@@ -309,7 +309,7 @@ ____________________________________________________________________________-->
309
309
</para>
310
310
____________________________________________________________________________-->
311
311
<para>
312
- 如果需要,一个订阅者节点可以有多个订阅。可以在一对发布者-订阅者之间定义多个订阅,在这种情况下要确保被订阅的publication对象不会重叠 。
312
+ 如果需要,一个订阅者节点可以有多个订阅。可以在一对发布者-订阅者之间定义多个订阅,在这种情况下要确保被订阅的发布对象不会重叠 。
313
313
</para>
314
314
315
315
<!--==========================orignal english content==========================
@@ -679,7 +679,7 @@ ____________________________________________________________________________-->
679
679
</para>
680
680
____________________________________________________________________________-->
681
681
<para>
682
- 逻辑复制从拷贝发布者数据库上的数据库快照开始。拷贝一旦完成,发布者上的更改会在它们发生时实时传送给订阅者。订阅者按照数据在发布者上被提交的顺序应用数据,这样任意单一订阅中的publication的事务一致性才能得到保证 。
682
+ 逻辑复制从拷贝发布者数据库上的数据库快照开始。拷贝一旦完成,发布者上的更改会在它们发生时实时传送给订阅者。订阅者按照数据在发布者上被提交的顺序应用数据,这样任意单一订阅中的发布的事务一致性才能得到保证 。
683
683
</para>
684
684
685
685
<!--==========================orignal english content==========================
@@ -699,7 +699,7 @@ ____________________________________________________________________________-->
699
699
</para>
700
700
____________________________________________________________________________-->
701
701
<para>
702
- 逻辑复制被构建在一种类似于物理流复制(见<xref linkend="streaming-replication"/>)的架构上。它由<quote>walsender</quote>和<quote>apply</quote>进程实现。walsender进程开始对WAL的逻辑解码(在<xref linkend="logicaldecoding"/>中描述)并且载入标准逻辑解码插件(pgoutput)。该插件把从WAL中读取的更改转换成逻辑复制协议(见<xref linkend="protocol-logical-replication"/>)并且根据publication说明过滤数据 。然后数据会被连续地使用流复制协议传输到应用工作者,应用工作者会把数据映射到本地表并且以正确的事务顺序应用它们接收到的更改。
702
+ 逻辑复制被构建在一种类似于物理流复制(见<xref linkend="streaming-replication"/>)的架构上。它由<quote>walsender</quote>和<quote>apply</quote>进程实现。walsender进程开始对WAL的逻辑解码(在<xref linkend="logicaldecoding"/>中描述)并且载入标准逻辑解码插件(pgoutput)。该插件把从WAL中读取的更改转换成逻辑复制协议(见<xref linkend="protocol-logical-replication"/>)并且根据发布说明过滤数据 。然后数据会被连续地使用流复制协议传输到应用工作者,应用工作者会把数据映射到本地表并且以正确的事务顺序应用它们接收到的更改。
703
703
</para>
704
704
705
705
<!--==========================orignal english content==========================
@@ -767,7 +767,7 @@ ____________________________________________________________________________-->
767
767
</para>
768
768
____________________________________________________________________________-->
769
769
<para>
770
- 因为逻辑复制是基于与<link linkend="streaming-replication">物理流复制</link>相似的架构的,一个publication节点上的监控也类似于对物理复制主节点 (见<xref linkend="streaming-replication-monitoring"/>)的监控。
770
+ 因为逻辑复制是基于与<link linkend="streaming-replication">物理流复制</link>相似的架构的,一个发布节点上的监控也类似于对物理复制主节点 (见<xref linkend="streaming-replication-monitoring"/>)的监控。
771
771
</para>
772
772
773
773
<!--==========================orignal english content==========================
@@ -832,7 +832,7 @@ ____________________________________________________________________________-->
832
832
</para>
833
833
____________________________________________________________________________-->
834
834
<para>
835
- 要创建publication ,用户必须在数据库中有<literal>CREATE</literal>特权。
835
+ 要创建发布 ,用户必须在数据库中有<literal>CREATE</literal>特权。
836
836
</para>
837
837
838
838
<!--==========================orignal english content==========================
@@ -843,7 +843,7 @@ ____________________________________________________________________________-->
843
843
</para>
844
844
____________________________________________________________________________-->
845
845
<para>
846
- 要把表加入到一个publication ,用户必须在该表上有拥有权。要创建一个自动发布所有表的publication ,用户必须是一个超级用户。
846
+ 要把表加入到一个发布 ,用户必须在该表上有拥有权。要创建一个自动发布所有表的发布 ,用户必须是一个超级用户。
847
847
</para>
848
848
849
849
<!--==========================orignal english content==========================
0 commit comments