從小白到專家 PostgreSQL技術(shù)大講堂 - Part 4:PG實例結(jié)構(gòu)
最新學(xué)訊:近期OCP認(rèn)證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯(lián)系在線老師,甲骨文官方認(rèn)證,報名從速!
我要咨詢
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內(nèi)容包括對PG基礎(chǔ)的認(rèn)知、包括安裝使用、包括角色權(quán)限、包括維護管理、、等內(nèi)容,希望對熱愛PG、學(xué)習(xí)PG的同學(xué)們有幫助,歡迎持續(xù)關(guān)注CUUG PG技術(shù)大講堂。
Part 4:PG實例結(jié)構(gòu)
內(nèi)容1:PostgreSQL實例簡介
內(nèi)容2:PostgreSQL初始化參數(shù)文件
內(nèi)容3:PostgreSQL內(nèi)存結(jié)構(gòu)
內(nèi)容4:PostgreSQL后臺進程
1.1、PG實例簡介
PostgreSQL實例:用來訪問PostgreSQL數(shù)據(jù)庫
一個實例對應(yīng)一個數(shù)據(jù)庫集簇
由內(nèi)存和后臺進程組成

1.2、建立一個連接和創(chuàng)建一個會話
連接到一個PostgreSQL實例建立一個用戶連接
創(chuàng)建一個會話

2、初始化參數(shù)文件

兩種類型的參數(shù)顯式:在文件中對參數(shù)進行設(shè)置
隱式:文件中沒有設(shè)置,使用Postgres默認(rèn)值
可以存在多個初始化參數(shù)文件靜態(tài)參數(shù)文件:postgresql.conf
動態(tài)參數(shù)文件:postgresql.auto.conf
可選參數(shù)文件:postgresql.conf.user
讀取順序postgresql.conf
postgresql.auto.conf
postgresql.conf.user
2.1、postgresql.conf參數(shù)文件
postgresql.conf參數(shù)文件文本文件
使用操作系統(tǒng)編輯器修改
手動修改
更改將在下次啟動時生效
僅在實例啟動期間讀取
默認(rèn)位置為$PGDATA
2.2、postgresql.auto.conf參數(shù)文件
postgresql.auto.conf參數(shù)文件文本文件
由Postgres服務(wù)器維護
支持用文本編輯器修改(不推薦)
ALTER SYSTEM命令修改的參數(shù)保存在該文件
能夠在關(guān)閉和啟動期間持續(xù)進行更改
可以實現(xiàn)自我調(diào)整參數(shù)值
默認(rèn)位置為$PGDATA
改變一個參數(shù)的值,會在文件中自動添加參數(shù)
ALTER SYSTEM SET archive_mode = on;
恢復(fù)一個參數(shù)默認(rèn)值,會在文件中自動刪除參數(shù)
ALTER SYSTEM RESET archive_mode;
2.3、參數(shù)生效條件
參數(shù)生效條件 sighup:表示需要超級管理員修改,reload就能夠生效。
superuser:表示使用超級管理員可以為普通用戶、數(shù)據(jù)庫、或者超級管理員自己修改。(注:有些參數(shù)是可以針對用戶、數(shù)據(jù)庫、實例)
postmaster:表示需要超級管理員修改,需要重啟才能夠生效。
user:表示普通用戶可以修改該參數(shù)值,立即生效。

3、Memory Architecture
PostgreSQL中的內(nèi)存架構(gòu)可以分為兩大類:Local memory area –由每個后端進程分配給自己使用
Shared memory area –由PostgreSQL服務(wù)器的所有進程使用

3.1、Memory Architecture
Local Memory Area:

Shared Memory Area:

4、Process Architecture
PostgreSQL進程結(jié)構(gòu):
postgres server process :postgres服務(wù)器進程是與數(shù)據(jù)庫群集管理相關(guān)的所有進程的父進程。
backend process:每個后端進程處理連接的客戶端發(fā)出的所有查詢和語句。
background processes:各種后臺進程執(zhí)行用于數(shù)據(jù)庫管理的每個特性的進程(例如清空和檢查點進程)。
replication associated processes:在與復(fù)制相關(guān)聯(lián)的進程中,它們執(zhí)行流式復(fù)制。
background worker process-:在版本9.3支持的后臺工作進程中,它可以執(zhí)行用戶實現(xiàn)的任何處理。
PostgreSQL進程結(jié)構(gòu):

4.1、Postgres Server Process
Postgres Server Processpostgres服務(wù)器進程是PostgreSQL服務(wù)器中所有進程的父進程。早期版本它被稱為“postmaster”。
pg_ctl實用程序啟動該進程,然后派生出各個后臺進程。同時分配共享內(nèi)存區(qū)域。
一個postgres服務(wù)器進程偵聽一個網(wǎng)絡(luò)端口,默認(rèn)端口為5432。
4.2、Backend Processes
Backend Processes后端進程(也稱為postgres)由postgres服務(wù)器進程啟動,并處理一個連接的客戶端發(fā)出的所有查詢。
PostgreSQL允許多個客戶端同時連接;配置參數(shù)max_connections控制客戶端的最大數(shù)量。

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

相關(guān)閱讀:
從小白到專家 PG技術(shù)大講堂 - Part 1:PG簡介
從小白到專家 PG技術(shù)大講堂 - Part 2:PG源代碼安裝
從小白到專家 PG技術(shù)大講堂 - Part 3:PG建庫與使用
以上就是Part 4 - PG實例結(jié)構(gòu) 的內(nèi)容,大家練習(xí)的時候如果遇到困難,可以進群一起探討,QQ交流群:752027153 微信交流群:聯(lián)系客服拉你進微信PG交流群 如果單看文檔不太懂,可以加入釘釘群,以后可能會有公開課專門講解此內(nèi)容,釘釘交流群:35822460
- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細了解老師]
