Postgresql postgres中多台机器上的多个模式

Postgresql postgres中多台机器上的多个模式,postgresql,database-design,schema,cluster-computing,scalability,Postgresql,Database Design,Schema,Cluster Computing,Scalability,在多台机器上扩展多个模式,我使用PostgreSQL作为后端系统,现在我想执行模式驻留在哪台机器上的模式查找,就像我在机器D1和D2上安装了两台机器M1和M2一样,现在tenant1模式在DB1上,Tenant2模式在DB2上,现在,两个租户将使用相同的应用服务器,或者在这种情况下,我必须使用集群和分区节点,并且每个节点都包含一些数据或类似的内容。TANANT1和TANANT2可以使用相同的应用程序,现在我希望一些解决方案保持在中间,并执行池的查找和缓存。是否可以通过使用集群来完成?或者我必须制

在多台机器上扩展多个模式,我使用PostgreSQL作为后端系统,现在我想执行模式驻留在哪台机器上的模式查找,就像我在机器D1和D2上安装了两台机器M1和M2一样,现在tenant1模式在DB1上,Tenant2模式在DB2上,现在,两个租户将使用相同的应用服务器,或者在这种情况下,我必须使用集群和分区节点,并且每个节点都包含一些数据或类似的内容。TANANT1和TANANT2可以使用相同的应用程序,现在我希望一些解决方案保持在中间,并执行池的查找和缓存。是否可以通过使用集群来完成?或者我必须制作一个像PgPool II这样的程序,显示为数据库服务器,并为我查找模式。

我建议两件事中的一件

  • 您可以使用pgpool或应用程序级连接池来做出决定

  • 若您需要db透明,可以使用pl/代理过程设置模式,以这种方式处理db的分片。这将允许您的“前端”数据库服务器协调对存储碎片的查询(每个碎片位于不同的分区中)


  • 如果您的架构及其服务器不经常更改,那么在
    pgbouncer
    ()或pgpool2上的应用程序中处理关于连接到哪个数据库的决定可能会更有效。感谢bma,pgbouncer似乎是可行的选择,但这些服务器将不具有复制功能,我的意思是服务器将保存不同的数据,因此,如果tenant1确实请求pgbouncer和tenant2,它会自动查找模式所在的机器吗?我不能确定,但也许可以根据pgbouncer config.ini文件中的某些逻辑,将pgbouncer配置为将查询指向正确的数据库。如果没有,您可能必须在应用程序中处理该问题。