在 PostgreSQL 安装中拆分客户端站点的最佳方法是什么?

在 PostgreSQL 安装中拆分客户端站点的最佳方法是什么?

我需要使用一个 PostgreSQL 安装来托管多个客户端站点。拆分它们的最佳方法是什么——按架构还是按实例?

这些因素包括如何使管理更容易(尤其是单个站点的备份/恢复)、站点的性能以及内存使用的整体效率。

谢谢杰森

答案1

“最佳”方法在很大程度上取决于您的使用情况,然而在我托管的日子里,我们曾经简单地为每个客户提供他们自己的 DB 用户,即他们特定数据库的 DBO,并具有适当的权限和登录限制(pg_hba.conf分别在 Postgres 中),这样他们就不会干扰任何人的数据。

可以使用以下方式处理备份/恢复pg_dump(单独转储每个数据库,以便可以轻松恢复它们,而不必通过转储文件进行选择),并且性能/调整与任何中型到大型 Postgres 实例相同。


按模式拆分(在同一个数据库内)也是一种选择,但它不会强制执行与单独的数据库相同级别的分离,并且如果这样做,显然不能让客户端创建自己的模式(或做任何其他需要 DBO 的事情)。


按实例拆分(每个客户端使用单独的 Postgres 服务器)是分离的最终级别,但实际上需要单独的操作系统每个客户端都有一个用户(因此 Postgres 在完全独立的用户下运行)。这也是一个巨大的内存/资源消耗:理想情况下,Postgres(与大多数 DB 系统一样)应该是服务器上唯一运行的东西,并且只有一个实例。

相关内容