我们经常在办公室里解决这个问题,问题不断出现。您如何处理 PostgreSQL 复制?我什至不一定要谈论高级集群,只是简单地使用 Master-Slave、Master-MultiSlave 和 Master-Master。我发现为 MySQL 设置它通常非常简单。故障转移即使不是完美的也很简单,尤其是配置起来很容易。我们玩过 Slony,但它有点过于亲力亲为(模式更改需要干预,新数据库需要干预等)。PGPool2 非常好,直到一个节点出现故障,我们找不到一种优雅的方式(除了将所有内容都关闭并重新设置下降的节点)来使复制恢复同步。基本上这就是我通常要寻找的东西:
- 易于设置(我会接受困难的设置,但易于扩展)
- 简单的故障转移
- 恢复掉下的节点只需要时间(即像 mysql。服务器出现故障,您将其启动,然后等待复制赶上)
- 架构更改不会破坏复制
- 向服务器添加新数据库是无缝的(即像 mysql 一样,您可以复制整个 DB 服务器,因此在主服务器上创建一个新数据库,它会自动传播到从服务器)
MySQL 可以很好地处理其中的大部分,但我对 PostgreSQL 有一定的喜爱。此外,在某些情况下,它是我们唯一的选择,我们希望将复制添加到组合中。您目前正在使用什么,您对您的解决方案有何看法?我保证,这不是 MySQL 与 PostgreSQL 的对比,因为这不是我想要开始的。:)