11.1.复制集合的概念

BDR 组中,每个表属于一个或多个复制集。复制设置所有和 BDR 隐式创建默认值。 顾名思义,所有表都都在复制设置所有,和每个表也是最初在复制设置默认值。

复制集合的成员资格是其自我复制,所以在复制集的表的会员是同一组中的所有节点上。 为了实现不同的数据复制到不同的节点,必须配置一些节点连接接收非默认复制集。

每个节点的连接设置指定复制设置,它接收从其同行。 这些设置可能会进一步覆盖在节点的基础上,指定一个节点应该接收到来自一些其他节点的复制集。

这意味着,实际上收到的一些其他节点从给定节点的变化由复制设置被更改的表的成员身份和复制设置的节点的节点接收更改的成员,除非更特定的复制设置指定为从接收节点到发送节点的连接。如果更改的表中至少一个复制设置接收器也接受从更改,即表复制集相交连接复制集收到更改。

例如,复制集{'X','default'} 上的表A 在某个节点 N0 上做了修改, 其他节点 N1 存在在复制集合 {'default'} ,那么将收到 N0 所做的更改。 如果其他节点 N2 上存在复制集合{'X'}, 那么它也会接受到更改,因为表A 同样处在复制集合 X 中。 如果另一个节点 N3 拥有复制集合{'Y'} ,那么它将不会收到更改,因为 表A不是该集合的成员, 它不会接收到与之相关的复制更改。

当创建或连接到 BDR 群集新 BDR 节点时, 它默认为复制默认复制组中的所有更改。 这种行为可以在节点联接时,重写,或通过复制设置的控制函数在以后更改。

注意:复制集的成员不影响同步哪些表的架构,在初始节点联接或在随后的 DDL 复制操作。 表上的 DDL 总是影响无论复制集成员的所有节点。 同样,复制设置会员不会影响哪些表的内容 (虽然这可能会在未来的版本中的更改),复制数据是使用的初始节点联接。

警告

目前,TRUNCATE(截断)始终会被复制,即使表不属于任何活动的复制集合。 如果不是必须使用TRUNCATE的话,使用DELETE FROM tablename。

results matching ""

    No results matching ""