【问题标题】:What's the difference between pgpool II replication and postgresql replication?pgpool II 复制和 postgresql 复制有什么区别?
【发布时间】:2014-08-13 14:04:13
【问题描述】:

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

【问题讨论】:

  • 我更喜欢内置复制而不是 pgPool 的复制。管理复制的一个非常好的工具是repmgr.org 通常人们使用虚拟 IP 来指向“集群”,但您也可以使用 pgPool 作为复制服务器的代理
  • 如果您没有经验,请坚持使用 WAL 归档故障转移的内置流复制。 repmgr 对此有所帮助。如果您想让它对客户端透明,请使用像 PgBouncer 这样的代理(使用在故障转移时更改目标服务器的脚本)或类似 HAProxy 的东西。不要尝试全自动故障转移,使用手动触发的脚本故障转移 - 并定期测试

标签: postgresql database-replication pgpool


【解决方案1】:

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

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

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

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

【讨论】:

  • 你不能用看门狗运行多个 pgpool2 实例吗?我认为这应该是避免单点故障的方式。
猜你喜欢
  • 2015-11-23
  • 2013-02-13
  • 2011-04-26
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
相关资源
最近更新 更多