從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

unix_5359發表於2023-01-11
從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色許可權、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。

Part 5:PG資料庫結構

內容1:PostgreSQL邏輯結構

內容2:PostgreSQL物理結構

內容3:PostgreSQL表空間結構


1.1、資料庫集簇邏輯結構

資料庫集簇邏輯結構 :

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

1.2、物件識別符號

PostgreSQL中的所有資料庫物件都由各自的物件識別符號(oid)在內部管理。

這些物件識別符號是無符號的4位元組整數。資料庫物件和相應的oid之間的關係儲存在適當的系統目錄中,具體取決於物件的型別。

資料庫的oid儲存在pg_database中。

資料庫的oid與對應的資料庫目錄名是一致的


2、資料庫集簇物理結構

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

每個資料庫是base子目錄下的子目錄;資料庫目錄名與相應的oid相同。例如,當資料庫sampledb的OID為16384時,其子目錄名為16384。

cd $PGDATA

ls -ld base/16384

drwx------ 213 postgres postgres 7242 8 26 16:33 16384


2.1、其它目錄結構

資料庫叢集的佈局的主要檔案和子目錄如下所示:

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構


3、Tablespaces

PostgreSQL Tablespaces

PostgreSQL中的表空間是基本目錄之外的附加資料區域,此功能已在版本8.0中實現。

初始化資料庫後預設的表空間有pg_default、pg_global。

pg_global表空間的物理檔案位置在資料目錄的global目錄中,它用來儲存系統表。

pg_default表空間的物理檔案位置在資料目錄的base子目錄中,是template0和template1資料庫的預設表空間。

建立資料庫時,預設從template1資料庫進行克隆,因此除非特別指定了新建資料庫的表空間,否則預設使用template1使用的表空間,即pg_default表空間。


PostgreSQL表空間物理檔案位置

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

建立表空間時產生的目錄命名規則PG _ 'Major version' _ 'Catalogue version number'

例如:

sampledb=# create tablespace new_tblspc location '/home/postgres/tblspc';

$ ls -l /home/postgres/tblspc/ total 4

drwx------ 4 postgres postgres PG_12_201909212


新建表空間的目錄由pg_tblspc子目錄中的軟連結定址,連結名與表空間的OID值相同

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

如果在表空間下建立一個新的資料庫(OID是90209),那麼它的目錄將在版本特定的子目錄下建立

ls -l /home/postgres/tblspc/PG_12_201909212 total 4

drwxr-x---. 2 postgres postgres 4096 Mar 30 09:27 90209


在base目錄下建立的資料庫上建立新表指定到新建的表空間

testdb=# create table test1 (id int) tablespace new_tblspc;

testdb=# SELECT pg_relation_filepath('test1'); pg_relation_filepath

---------------------------------------------

pg_tblspc/90208/PG_12_201909212/16385/90210 #在新表空間目錄下建立資料庫目錄

從小白到專家 PostgreSQL技術大講堂 - Part 5:PG資料庫結構

以上就是Part 5 - PG資料庫結構 的內容,大家可以進群一起探討,QQ交流群:75202 7153

釘釘交流群:3582 2460,1月13日晚上8點會有公開課專門講解此內容


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31544987/viewspace-2931780/,如需轉載,請註明出處,否則將追究法律責任。

相關文章