10

我不完全是 DBA,所以我希望得到易于理解的回复。我必须为我们的数据库提供复制,而 pgpool 似乎更方便,因为如果一个 postgresql 实例失败,客户端不需要更改任何内容来继续工作,对吗?因此,在这种情况下,使用 pgpool 更有意义,但配置部分(对我而言)似乎更加复杂和混乱。例如,我需要在两个 postgresql 服务器上设置 WAL 吗?或者只有在我想设置 postgresql 复制时才需要这样做?我越是试图得到这些问题的答案,它就越不清晰。可能我忘了怎么用谷歌...

4

1 回答 1

9

PostgreSQL 自身提供的内置复制包括流式复制、热备和热备。这些选项基于将预写日志 (WAL) 发送到所有备用服务器。写入语句(例如 , INSERTUPDATE将发送到主服务器,主服务器会将日志(WAL)发送到备用服务器(或其他主服务器,在主-主复制的情况下)。

另一方面,pgpool 是一种基于语句的复制中间件(如数据库代理)。所有的语句实际上都转到 pgpool,而 pgpool 将所有内容转发到所有要复制的服务器。

pgpool 的一大缺点是存在单点故障。如果运行 pgpool 的服务器崩溃,你的整个集群就会失败。

PostgreSQL 文档有一些关于可能的各种复制类型的基本信息:https ://www.postgresql.org/docs/current/different-replication-solutions.html

于 2015-03-04T12:31:11.203 回答