我不是一个DBA,所以我很欣赏易于理解的回复。我必须为我们的数据库和pgpool提供复制似乎更方便,因为如果一个postgresql实例失败,客户端不需要更改任何东西以继续工作,对吧?因此,在这种情况下,使用pgpool更有意义,但配置部分(对我来说)似乎更复杂和令人困惑。例如,我是否需要在两个postgresql服务器上设置WAL?或者只有在我想设置postgresql复制时才需要这个?我试图得到这些问题的答案越多,它就越不清楚。也许我忘记了如何google ...
答案 0 :(得分:5)
postgresql提供的复制(流复制,热备份,热备份)基于向所有备用服务器发送预写日志.Write语句将转到主服务器,主服务器将日志发送到备用服务器(或其他mastersin主 - 主复制的情况)。
而pgpool是一种基于语句的复制中间件(如数据库代理),即语句实际上转到pgpool,而pgpool将它转发给所有要复制的服务器。
使用pgpool的一大缺点是,如果运行pgpool的服务器崩溃,那么整个高可用性集群都会失败(单点故障)。
了解更多信息:http://www.postgresql.org/docs/9.4/static/different-replication-solutions.html