大數據就業實戰培訓 Oracle就業實戰培訓
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。
Part 3:PG實例結構
內容1:PostgreSQL實例簡介
內容2:PostgreSQL初始化參數文件
內容3:PostgreSQL內存結構
內容4:PostgreSQL后臺進程
1.1、PG實例簡介
PostgreSQL實例:用來訪問PostgreSQL數據庫
一個實例對應一個數據庫集簇
由內存和后臺進程組成
1.2、建立一個連接和創建一個會話
連接到一個PostgreSQL實例建立一個用戶連接
創建一個會話
2、初始化參數文件
兩種類型的參數顯式:在文件中對參數進行設置
隱式:文件中沒有設置,使用Postgres默認值
可以存在多個初始化參數文件靜態參數文件:postgresql.conf
動態參數文件:postgresql.auto.conf
可選參數文件:postgresql.conf.user
讀取順序postgresql.conf
postgresql.auto.conf
postgresql.conf.user
2.1、postgresql.conf參數文件
postgresql.conf參數文件文本文件
使用操作系統編輯器修改
手動修改
更改將在下次啟動時生效
僅在實例啟動期間讀取
默認位置為$PGDATA
2.2、postgresql.auto.conf參數文件
postgresql.auto.conf參數文件文本文件
由Postgres服務器維護
支持用文本編輯器修改(不推薦)
ALTER SYSTEM命令修改的參數保存在該文件
能夠在關閉和啟動期間持續進行更改
可以實現自我調整參數值
默認位置為$PGDATA
改變一個參數的值,會在文件中自動添加參數
ALTER SYSTEM SET archive_mode = on;
恢復一個參數默認值,會在文件中自動刪除參數
ALTER SYSTEM RESET archive_mode;
2.3、參數生效條件
參數生效條件 sighup:表示需要超級管理員修改,reload就能夠生效。
superuser:表示使用超級管理員可以為普通用戶、數據庫、或者超級管理員自己修改。(注:有些參數是可以針對用戶、數據庫、實例)
postmaster:表示需要超級管理員修改,需要重啟才能夠生效。
user:表示普通用戶可以修改該參數值,立即生效。
3、Memory Architecture
PostgreSQL中的內存架構可以分為兩大類:Local memory area –由每個后端進程分配給自己使用
Shared memory area –由PostgreSQL服務器的所有進程使用
3.1、Memory Architecture
Local Memory Area:
Shared Memory Area:
4、Process Architecture
PostgreSQL進程結構:
postgres server process :postgres服務器進程是與數據庫群集管理相關的所有進程的父進程。
backend process:每個后端進程處理連接的客戶端發出的所有查詢和語句。
background processes:各種后臺進程執行用于數據庫管理的每個特性的進程(例如清空和檢查點進程)。
replication associated processes:在與復制相關聯的進程中,它們執行流式復制。
background worker process-:在版本9.3支持的后臺工作進程中,它可以執行用戶實現的任何處理。
PostgreSQL進程結構:
4.1、Postgres Server Process
Postgres Server Processpostgres服務器進程是PostgreSQL服務器中所有進程的父進程。早期版本它被稱為“postmaster”。
pg_ctl實用程序啟動該進程,然后派生出各個后臺進程。同時分配共享內存區域。
一個postgres服務器進程偵聽一個網絡端口,默認端口為5432。
4.2、Backend Processes
Backend Processes后端進程(也稱為postgres)由postgres服務器進程啟動,并處理一個連接的客戶端發出的所有查詢。
PostgreSQL允許多個客戶端同時連接;配置參數max_connections控制客戶端的最大數量。
Background Processes
postgres> pstree -p 9687-+= 00001 root /sbin/launchd\-+- 09687 postgres /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data |--= 09688 postgres postgres: logger process|--= 09690 postgres postgres: checkpointer process |--= 09691 postgres postgres: writer process|--= 09692 postgres postgres: wal writer process|--= 09693 postgres postgres: autovacuum launcher process |--= 09694 postgres postgres: archiver process|--= 09695 postgres postgres: stats collector process|--= 09697 postgres postgres: postgres sampledb 192.168.1.100(54924) idle\--= 09717 postgres postgres: postgres sampledb 192.168.1.100(54964) idle in transaction
相關閱讀:
從小白到專家 PG技術大講堂 - Part 1:PG簡介
從小白到專家 PG技術大講堂 - Part 2:PG源代碼安裝
從小白到專家 PG技術大講堂 - Part 3:PG建庫與使用
以上就是Part 4 - PG實例結構 的內容,大家練習的時候如果遇到困難,可以進群一起探討,QQ交流群:752027153 微信交流群:聯系客服拉你進微信PG交流群 如果單看文檔不太懂,可以加入釘釘群,以后可能會有公開課專門講解此內容,釘釘交流群:35822460