postgresql核心架構 安裝後的目錄介紹

2021-08-09 12:12:00 字數 1820 閱讀 2572

程序和記憶體架構圖:

主程序:

postmaster 

位於安裝目錄的bin目錄下,主程序是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。

可以執行postmaster、postgres命令並加上合適的引數啟動資料庫,實際上postmaster命令是乙個指向postgres的鏈結。

更多的時候是通過pg_ctl來啟動資料庫,pg_ctl也是通過執行postgres來啟動資料庫的。

客戶端每次與資料庫建立連線時,postgresql資料庫會啟動乙個服務程序來給這個連線服務,所以postgresql是程序架構模型。

當某個服務程序出現錯誤時,postmaster主程序會自動完成系統的恢復。

輔助程序:

sysloglogger(系統日誌)程序 

在postgresql.conf檔案中配置,引數為logging_collect=on 

設定了日誌檔案的大小和存在時間,當達到條件時就會關閉舊的日誌檔案,並建立新的日誌檔案。

bgwriter(後台寫)程序 

周期性地把共享記憶體中的髒頁寫到磁碟上的程序。

當網資料庫中插入或更新資料時,並不會馬上把資料持久到資料檔案中,主要是為了提高插入、更新、刪除資料的效能。

通過 「bgwriter_」開頭的配置引數來控制。

walwriter(預寫式日誌)程序 

在修改資料之前,必須把這些修改操作記錄到磁碟中,這樣後面更新實際資料時,就不需要實時地把資料持久化到檔案中了。

日誌儲存在pg_xlog下,每個xlog檔案預設大小是16mb.

pgarch(歸檔)程序 

在wal日誌被覆蓋前,把wal日誌備份出來。

autovacuum(系統自動清理)程序 

pgstat(統計收集)程序

系統表pg_statistic中儲存了pgstat收集的各類統計資訊。

共享記憶體

主要用作資料塊的緩衝區,以便提高讀寫效能。wal日誌緩衝區和clog緩衝區也存在共享記憶體中。

本地記憶體

暫存一些不需要全域性儲存的資料。主要分為臨時緩衝區,work_mem,maintenance_work_mem.

安裝目錄的結構

/usr/local/pgsql

bin二進位制可執行檔案目錄

include

頭檔案目錄

lib

動態庫目錄

share

文件和配置模板檔案

資料目錄的結構 

一般使用pgdata指向資料目錄的根目錄。這個目錄是在安裝時指定的

目錄的初始化使用initdb來完成,完成後根目錄下就會生成3個配置檔案

postgresql.conf : 資料庫例項的主配置檔案,基本上所有的配置引數都在此檔案中;

pg_hba.conf: 認證配置檔案,配置了允許哪些ip訪問資料庫,認證的方法是什麼等資訊;

pg_ident.conf :認證方式的使用者對映檔案。

此目錄下還有一些子目錄:

base:預設表空間目錄

global: 一些共享系統表的目錄

pg_clog: commit log的目錄

pg_log:系統日誌目錄,在查詢一些系統錯誤時就可檢視此目錄下的日誌檔案

pg_stat_tmp:統計資訊的儲存目錄

pg_tblsp: 儲存了指向各個使用者自建表空間實際目錄的鏈結方式

pg_twophase:使用兩階段提交功能時分布式事務的儲存目錄 

pg_xlog:wal日誌的目錄 

表空間的目錄

建立完表空間後,會在表空間的根目錄下生成帶有「catelog version」的子目錄,可由 pg_controldata 命令查詢處來。

PostgreSQL的核心架構

注意本人的部落格都遷移到本人自己搭建的部落格位址,通過此處可檢視。1.訪問介面總體圖 1.程序和記憶體結構圖 2.主程序 postmaster 是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。3.syslogger 系統日誌 程序 需要在postgres.conf中logging colle...

postgresql核心架構 安裝後的目錄介紹

程序和記憶體架構圖 主程序 postmaster 位於安裝目錄的bin目錄下,主程序是整個資料庫例項的總控程序,負責啟動和關閉該資料庫例項。可以執行postmaster postgres命令並加上合適的引數啟動資料庫,實際上postmaster命令是乙個指向postgres的鏈結。更多的時候是通過p...

ubuntu下postgreSQL9 6安裝配置

1 安裝postgresql sudo add apt repository deb xenial pgdg main wget quiet o sudo apt key add sudo apt get update sudo apt get install postgresql 9.6 2 修改...