程序和記憶體架構圖:
主程序:
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 修改...