是否可以为postgresql slave提供额外的可写表(由Skytools / londiste复制)

时间:2011-05-23 21:37:52

标签: postgresql replication

我有一个带有表M.A1等的主postgres数据库M. 我有一个带有表M.A1等的奴隶数据库S,由Skytools / londiste填充和维护。一切都很好。

我不确切知道它是如何工作的,因为我不是设置Skytools实例的人。我刚刚阅读了一些文档,并稍微与之进行了互动。

我想在S:S.B1中添加一些辅助读/写表。 (我想加入S.A1,而不是向M添加任何额外的负载,这就是我想在S上安装B1的原因。是否有可能维持这种设置?

如果我在Skytools / Londiste奴隶上创建新表S.B1,是否会干扰表A1的复制?

编辑以添加后续内容:

对于影响主站的从站故障,这样的设置有多安全?

我并不十分关注我的分析从站的复制延迟或停机时间(但我需要一种方法最终恢复,而不会在主服务器上停机)。< / p>

我非常担心从属设备故障导致主设备无限期地增加其复制队列并消耗主设备上的HD / RAM /资源。我该如何减轻这种影响?有没有办法设置一个公差,以便如果从属设备落后太远,主设备就会丢弃从设备连接?

第2部分

如果我确实让这个设置正常工作,我想在某个地方有一个S.B1的备用备份,以防S失败。

是否可以设置辅助从属T,并配置Skytools / Londiste将S.B1复制到T.B1,而M.A1也复制到S.A1?

我应该关注哪些警告?

非常感谢您的建议和指示。

2 个答案:

答案 0 :(得分:3)

首先,我建议你花时间了解skytools pgq和londiste是如何工作的。它不是很复杂,但文档很少。

对于你的第一个问题 - 是的,你可以在奴隶上有其他表,而不是从主人那里复制的。

您的第二个问题涉及更多,我不确定您的要求是否完全清楚。 假设您要从从属服务器复制到辅助服务器的表是与您为主服务器复制到初始从服务器的表完全独立的组,那么您可以在初始从服务器上安装pgq,在辅助服务器上安装londiste,创建一个新队列并将这些表添加到您希望复制到辅助从属的队列中。

你不能使用skytools / Londiste进行级联复制,例如主人 - &gt; slave1 - &gt;奴隶2因此,将数据从一个从属设备部分复制到另一个从设备可以获得什么好处并不明显。

将所有表放在主服务器上然后只有一个队列用于复制到从服务器然后为了恢复能力有一个主服务器的热备份会更简单 explanation for 8.4如果需要,您可以从中进行时间点恢复,然后从一致的主服务器重建从服务器。 Skytools有一些软件包可以帮助您设置热备用/ pitr。

如果您不能拥有主服务器上的所有表,那么您可能最好维护从服务器的热备用以进行可用性恢复,但请记住,在执行此类还原后,您可能必须重新订阅从主服务器复制的表。 。如果要加入主表的从表具有外键约束,则可能会很复杂。

如果你是postgres 9,那么流媒体复制也可能有用,但我还没有用过。

答案 1 :(得分:0)

只是为了扩展这个主题,如果有人到达它,你可以有多个队列,如上面Gavin所建议的,但是你也可以从Skytools版本3(2012年3月)开始进行级联复制。实际上,您可以复制表的任何子集,如果需要,甚至可以在目标上重命名表。