db集群中有多达256个节点的系统。我们需要将其中一个的数据复制到其他所有数据中。但是,对于要复制的每一行,都有一个节点列表,必须在其中复制,而在其他节点上,如果没有父表键,同一行就变成孤儿。为了过滤掉它们,或者防止它们不必要地进行复制,我试图找到一种方法来教Slony如何选择要复制的节点,但是却找不到这样的特性。有没有人尝试过(定制其功能的源代码等等)?
_id,_text,_nodes
----------------
1 'one' {1,101}
2 'two' {2,102}
256 '...' {0,256}行id=1随后被复制到节点1和101,等等。
然而,类似的讨论只将重要记录复制到特定数据库还没有指出正确的方向。
发布于 2012-10-04 08:00:58
我看不出有什么办法能直接做到这一点。据我所知,Slony在表上设置复制目的地,而不是行、级别。
解决这个特定问题的方法是基于复制目标组实现视图,然后使用触发器来维护这些视图。然后Slony应该能够将这些表复制给奴隶。我不知道你是否能在填充主表的奴隶上设置触发器,但如果没有,就有办法解决这个问题。这需要将初始表与复制分离,当然还会增加一些复杂性。
发布于 2012-11-17 13:00:01
我能够使用PGQ实现这一点,使用推挽队列模式。最大的挑战是正确地编程消费者,但现在它工作得很好!也比斯隆快。
https://dba.stackexchange.com/questions/25409
复制相似问题