正如克雷格指出的那样,您的基本选择是布卡多、朗迪斯特和斯洛尼。与流复制相比,这些设置都有些复杂。
您不能做的最重要的事情是使用流复制或类似的解决方案。这些应用架构(和主要版本)特定的日志文件,因此跨架构将在好的日子里不起作用,而在糟糕的日子里会导致从服务器上的数据损坏。不要这样做。
这三种解决方案以独立于架构的格式提取数据,并通过额外的基础设施将其发送到从站上保存。这里有很大的权衡,我建议在提交之前彻底研究每个选项。
要记住的一件事是,PostgreSQL 社区通常非常坚持认为没有一种万能的复制解决方案是可能的,因此众多选项导致了许多通常的解决方案,每个解决方案通常都非常专业。
其中,Slony 可能是最可配置的,而 Londiste 是最简单的。不过,它们适用于非常不同的用例。如果我有时间并且没有人能打败我,我可能会发布三者的比较,或者至少链接到其他人。
更新:简要比较。
懒惰-I
Slony-I 是最古老、最强大的逻辑复制系统。实际上,我更愿意将 Slony-I 视为复制工具包而不是解决方案。工具包方法提供了难以置信的灵活性和解决复杂环境中各种问题的能力。缺点是灵活性很复杂。正如我所说,“Slony 很乐意让你只复制数据库的一部分。另一方面,Slony 很乐意让你只复制数据库的一部分。” 这是一个非常有用的解决方案,使各种事情成为可能,但复杂性远高于其他解决方案。
然而,Slony 的一个主要优点是它具有用于管理 DDL 更改的工具。据我所知,朗迪斯特和布卡多没有。这意味着在 Slony 上可以向表中添加列,但在其他系统上则不然。
布卡多
这在复杂性上介于 Londiste 和 Slony 之间。它的主要有用特性是能够在两个主服务器之间进行多主服务器复制。它广泛使用 Perl。我不知道它在 Windows 上的测试效果如何,这可能是一个缺点。
隆迪斯特
Londiste 是 Skype 的基于 pgq 的主从复制系统(基本上是一个连接到 PostgreSQL 的事件队列,其中包含在数据库操作上引发的事件)。它以易于设置但不易保护副本免受修改而闻名。这当然可能是一个功能或错误,具体取决于您如何看待它。