我对PostgreSQL数据库很新。我们已经开始在一周前使用它作为我们项目要求的一部分。我们花了一段时间才了解数据库的架构。
阅读了很多文章和文件。我们理解了以下几点:
我已经将postgresql安装到我的ubuntu系统中。除了默认的“主”群集之外,我还创建了5个不同的群集。我可以使用pg_lsclusters命令列出它们。我想现在在每个集群中创建名为“test,test2,dev,dev2,live,live2”的不同角色。当我创建角色时,它不会问我应该在哪个角色中创建角色。
此外,在对数据库执行任何操作时,如何选择我希望执行命令的特定群集。
答案 0 :(得分:0)
名称"集群"在PostgreSQL中有点误导,因为它根本不是一个集群。集群本质上是运行PostgreSQL系统的用户所拥有的文件系统目录。目录下是文件和更多目录,其中包含与群集相关的所有数据。单个群集可以容纳多个数据库,所有这些数据库都由一个正在运行的PostgreSQL实例控制(此实例也可以称为postmaster
)。 (群集可以使用表空间分布在不同的文件系统上,但除此之外,还有。)
您确实可以在单个系统上拥有多个群集,但PostgreSQL实例一次只能访问一个群集,在postmaster
启动时在命令行中指定。其他集群可以被PostgreSQL的其他实例使用。
每个群集都可以包含多个数据库。群集还可以有多个role
(用户,组),它们在群集上的所有数据库之间共享;角色永远不会在群集之间共享。现在在PostgreSQL中,您将使用命令CREATE ROLE
来创建用户和组。它们具有相同的权限结构,基本区别在于用户可以登录数据库系统,而组则不能。
除非您的要求非常具体(即您必须在特定服务器发行版本上运行数据库,而在另一个服务器发行版本上运行另一个数据库),否则只能使用一个集群。