PostgreSQL/架構目錄
PostgreSQL 在檔案系統中組織持久資料以及關於事務或複製操作的易失性狀態資訊。每個叢集在檔案系統中都有其根目錄。在許多情況下,環境變數 PGDATA 指向此目錄。以下圖形使用 data 作為叢集根目錄的名稱,這是預設名稱。

叢集的根目錄包含許多子目錄和一些檔案,所有這些檔案都是儲存持久資訊以及臨時資訊所必需的。根的名稱可以根據需要選擇,但其子目錄和檔案的名字是固定的,分別由 PostgreSQL 決定。以下段落描述了最重要的子目錄和檔案。
base 包含每個資料庫的一個子目錄。這些子目錄的名稱由數字組成。這些是內部物件識別符號 (OID),是用於標識其在系統目錄中定義的數字。
在 base 的資料庫特定子目錄內,有許多檔案:每個堆和索引有一個或多個檔案。同樣,檔名由數字組成。這些檔案伴隨著用於自由空間圖 (字尾為 _fsm) 和可見性圖 (字尾為 _vm) 的檔案,這些檔案包含最佳化資訊。檔名的示例是:3083、3083_fsm、3083_vm。
另一個子目錄是 global。它包含有關 SQL 物件的資訊檔案,這些物件不限於某個特定模式,但在模式級別是已知且相關的。
在 pg_tblspc 中,有一些符號連結指向根目錄樹之外的目錄,例如在不同的磁碟上。非預設表空間的堆和索引檔案駐留在那裡。在預設表空間中定義的那些檔案駐留在資料庫特定的子目錄中。
子目錄 pg_wal 包含 WAL 檔案。它們隨著叢集中的資料更改而出現和增長,並且只要需要用於恢復、歸檔或複製,它們就會保留。
子目錄 pg_xact 包含有關每個事務狀態的資訊:進行中、已提交、已中止或已子提交。
在根目錄中,有一些檔案。在許多情況下,叢集的配置檔案儲存在這裡。此外,如果例項正在執行,則檔案 postmaster.pid 存在於這裡(預設情況下,但其他位置也是可能的)。它包含啟動例項並控制它的 Postmaster 程序的程序 ID (pid)。