集群PostgreSQL集群

集群PostgreSQL集群,postgresql,repmgr,Postgresql,Repmgr,由于PostgreSQL人员对术语的选择不当,这将使一些人感到困惑,但请容忍我 我们需要能够支持多个PostgreSQL(PG)集群,并使用repmgr等在多个服务器上对它们进行集群。例如,支持每个PG集群的服务器可用性和PITR。在许多情况下,每台服务器一个PG群集的成本太高,因此我们在单独的PG群集上为多租户(小型)客户提供数据分离、恢复等服务,但我们也希望能够通过复制/故障转移来支持HA PG群集最接近的类比是SQL Server实例—每个实例都可以承载多个DB,有自己的端口等。与SQL

由于PostgreSQL人员对术语的选择不当,这将使一些人感到困惑,但请容忍我

我们需要能够支持多个PostgreSQL(PG)集群,并使用repmgr等在多个服务器上对它们进行集群。例如,支持每个PG集群的服务器可用性和PITR。在许多情况下,每台服务器一个PG群集的成本太高,因此我们在单独的PG群集上为多租户(小型)客户提供数据分离、恢复等服务,但我们也希望能够通过复制/故障转移来支持HA

PG群集最接近的类比是SQL Server实例—每个实例都可以承载多个DB,有自己的端口等。与SQL Server类似,您可以在同一台服务器上运行多个实例(PG群集),并为每个实例设置复制

基本的repmgr设置没有问题——这在单PG集群模型中似乎相当清楚。但是,对于使用repmgr的多个PG集群,是否有任何推荐/支持的方法?我可以想象假装repmgr认为每个PG集群实际上是一个单独的repmgr集群(带有单独的repmgr.conf、连接信息/端口)。但是,我还不确定这是否有效

我通常希望在同一台服务器上对所有PG集群进行故障转移,而不是一次一个

我承认这可能不是所有情况下最好的主意,但我主要是在探索什么是可能的。我有一些选择,但这是最接近我们目前的单节点模型

为了澄清这一点,我需要跨多个服务器集群支持数千名客户。理想情况下,每个集群使用相同的repmgr DB(例如,在主PG集群中),并且基本上独立于其他服务器集群


谢谢…

回答我自己的问题,但我希望最终有人能给出更好的答案,因为我非常喜欢repmgr。最后,似乎repmgr不适合多个PG群集(实例),因为repmgr群集连接字符串和PG群集(端口)之间存在隐含关系。因此,您实际上必须为每个集群PG集群/实例创建一个单独的repmgr环境(DB),从而失去repmgr为表带来的许多操作简单性

我将研究使用Corosync/Pacemaker/等的更通用的解决方案,因为至少在这种情况下,虚拟集群IP处理内置于解决方案中,不需要额外的软件/资源即可实现


我确信我可能过于简化了,但似乎repmgr非常接近于解决大部分问题,前提是它允许repmgr DB完全独立于PG集群,并允许每个repmgr集群指定自己的连接信息,而不是(仅)repmgr数据库本身的连接信息。

我确实希望PostgreSQL删除术语“集群”:(.I使用“实例”相反,也许你应该编辑,以澄清。无论如何,这听起来像你管理许多单租户PARGRESS实例。考虑通过工具自动化-安特尔,傀儡等-和容器- Docker,AWS等。