概述
pg數據庫和mysql數據庫的安裝目錄結構很類似,程序和數據是分開的,在啟動時候可以自行指定不同的數據目錄來做到啟動不同的數據庫。
目錄
下面表格來解釋pg數據目錄下,每個文件夾以及文件名的作用。
目錄名 | 作用 |
---|---|
base | 該目錄包含了數據庫中各個數據庫,每個數據庫都是由一個文件夾組成,文件名是該數據庫的oid,這個可以通過數據字典pg_database來查看對應的數據庫名(select oid,datname from pg_database)。 |
pg_xlog/pg_wal | 該目錄包含wal(預寫)日志。注意在10版本后,該目錄重命名為"pg_wal"。 |
global | 該目錄包含集群范圍的各個表和相關視圖。 ( pg_database、 pg_tablespace ) |
pg_clog | 該目錄包含事務提交狀態數據。 |
pg_multixact | 該目錄包含多事務狀態數據(等待鎖定的並發事務) |
pg_notify | 該目錄包含LISTEN/NOTIFY狀態數據。 |
pg_serial | 該目錄包含了已經提交的序列化事務的有關信息。 |
pg_snapshots | 該目錄包含導出的快照。 |
pg_stat_tmp | 該目錄包含統計子系統的臨時文件。 |
pg_subtrans | 該目錄包含子事務狀態數據。 |
pg_tblspc | 該目錄包含表空間的符號鏈接。 |
pg_twophase | 該目錄包含預備事務的狀態文件。 |
pg_commit_ts | 該目錄包含已提交事務的時間。 |
pg_dynshmem | 該目錄包含動態共享內存子系統使用的件。 |
pg_logical | 該目錄包含邏輯解碼的狀態數據。 |
pg_replslot | 該目錄包含復制槽數據。 |
pg_stat | 該目錄包含統計子系統的永久文件。 |
文件名 | 作用 |
---|---|
pg_hba.conf | 數據庫訪問控制文件,一般新安裝的數據庫都需要進行配置,在流復制中也需要配置。 |
pg_ident.conf | 將數據庫用戶映射到本地用戶的一種認證方式,使用比較少,在特殊場景下需要配置(控制哪一個本地用戶可以連接到哪一個數據庫)。 |
postgresql.conf/postgresql.base.conf | 主要配置文件,在數據庫安裝完后,需要手動更改里面的監聽地址,否則默認只能本地連接。 |
PG_VERSION | 包含版本信息。 |
postmaster.pid | 啟動后pg主進程ID。 |
總結
了解各個數據庫的文件的作用對於理解數據庫的邏輯結構非常有用,這方面需要不斷的學習。