linux 服务器上运行的Postgres示例列表

8aqjt8rx  于 2022-12-18  发布在  Linux
关注(0)|答案(1)|浏览(109)

我在我的组织中担任Postgres DBA。我们目前正在SUSE Linux服务器上开发Postgres 9.5。我需要一个特定的解决方案。我们有多个SUSE Linux服务器,每个服务器可以托管一个或多个Postgres数据库。我的要求是我需要找到特定服务器上所有可用数据库的列表,无论数据库是启动并运行还是关闭。
Postgres是否有记录服务器上创建的所有数据库的文件或位置?是否有一种方法可以在不连接Postgres示例和不运行任何PSQL命令的情况下获得所需的详细信息?
如果没有,什么是最好的方法来获得名单。任何提示,解决方案和想法将帮助我解决这个问题。
提前感谢你的帮助。

djmepvbi

djmepvbi1#

在PostgreSQL中,一个服务器进程服务于一个 * 数据库集群 *,它实际上驻留在一个 * 数据目录 * 中。
PostgreSQL集群包含多个 * 数据库 *,当服务器进程关闭时,所有数据库都将关闭。
所以你的问题可以分为两部分:
1.如何找出计算机上有哪些数据库集群,而不管它们是否已启动?
1.即使集群关闭,如何找出集群内的所有数据库?
第一个问题没有一般性答案,因为数据目录原则上可以在任何地方,可以属于任何用户。
你可以用下式来近似

find / -name PG_VERSION

但最好找到适合您的设置的特殊解决方案(您没有告诉我们)。
第二个问题更难。
要获得一个数字ID列表,您必须知道所有表空间目录,默认表空间中的目录是数据目录base子目录中的子目录名。
为了获得数据库的 * 名称 *,您必须启动PostgreSQL服务器,因为要找到属于pg_database的文件并解析它是 * 非常 * 困难的。

相关问题