簡體   English   中英

在服務器上運行的Postgres實例列表

[英]List of Postgres Instances running on a Server

我在我的組織中擔任Postgres DBA。 我們目前正在SUSE Linux服務器上使用Postgres 9.5。 我想要一個特定的解決方案。 我們有多台SUSE Linux服務器,每台服務器可以托管一個或多個Postgres數據庫。 我的要求是,我需要查找特定服務器上所有可用數據庫的列表,而不管數據庫是否已啟動,正在運行或已關閉。

Postgres是否在其中記錄了在服務器上創建的所有數據庫的任何文件或任何位置。 有沒有一種方法可以獲取所需的詳細信息,而無需連接到Postgres實例並且不運行任何PSQL命令?

如果不是,那將是獲取列表的最佳方法。 任何提示,解決方案和想法都將幫助我解決此問題。

非常感謝您的事先幫助。

在PostgreSQL中,服務器進程為數據庫集群提供服務,該集群實際上位於數據目錄中

PostgreSQL集群包含多個數據庫 ,當服務器進程關閉時,所有數據庫都將關閉。

因此,您的問題可以分為兩部分:

  1. 如何確定計算機上哪些數據庫群集,無論它們是否已啟動?

  2. 即使關閉群集,如何查找群集內的所有數據庫?

第一個問題沒有通用答案,因為數據目錄原則上可以在任何地方,並且可以屬於任何用戶。

你可以得到一個近似值

find / -name PG_VERSION

但是最好找到適合您的設置的特殊解決方案(您沒有告訴我們)。

第二個問題更加困難。

為了獲得數字ID的列表,您必須知道所有表空間目錄。 缺省表空間中的那些是數據目錄的base子目錄中子目錄的名稱。

為了獲得數據庫的名稱 ,你必須有PostgreSQL服務器啟動,因為這將是很難找到屬於文件pg_database並解析它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM