日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

postgresql 客户端_Postgresql体系结构

發(fā)布時間:2024/9/3 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql 客户端_Postgresql体系结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Potgres(常駐進程)

管理后端的常駐進程,也稱為’postmaster’。其默認監(jiān)聽UNIX Domain Socket和TCP/IP(Windows等,一部分的平臺只監(jiān)聽tcp/ip)的5432端口,等待來自前端的的連接處理。監(jiān)聽的端口號可以在PostgreSQL的設(shè)置文件postgresql.conf里面可以改。

一旦有前端連接過來,postgres會通過fork(2)生成子進程。沒有Fork(2)的windows平臺的話,則利用createProcess()生成新的進程。這種情形的話,和fork(2)不同的是,父進程的數(shù)據(jù)不會被繼承過來,所以需要利用共享內(nèi)存把父進程的數(shù)據(jù)繼承過來。

postmaster(守護進程)主要職責(zé)有:

1. 數(shù)據(jù)庫的啟停

2. 監(jiān)聽客戶端連接

3. 為每個客戶端連接fork單獨的postgres服務(wù)進程

4. 當(dāng)postgres服務(wù)進程出錯時進行修復(fù)

5. 管理數(shù)據(jù)文件

6. 管理與數(shù)據(jù)庫運行相關(guān)的輔助進程

Postgres(子進程)

子進程根據(jù)pg_hba.conf定義的安全策略來判斷是否允許進行連接,根據(jù)策略,會拒絕某些特定的IP及網(wǎng)絡(luò),或者也可以只允許某些特定的用戶或者對某些數(shù)據(jù)庫進行連接。

Postgres會接受前端過來的查詢,然后對數(shù)據(jù)庫進行檢索,最好把結(jié)果返回,有時也會對數(shù)據(jù)庫進行更新。更新的數(shù)據(jù)同時還會記錄在事務(wù)日志里面(PostgreSQL稱為WAL日志),這個主要是當(dāng)停電的時候,服務(wù)器當(dāng)機,重新啟動的時候進行恢復(fù)處理的時候使用的。另外,把日志歸檔保存起來,可在需要進行恢復(fù)的時候使用。在PostgreSQL 9.0以后,通過把WAL日志傳送其他的postgreSQL,可以實時得進行數(shù)據(jù)庫復(fù)制,這就是所謂的‘?dāng)?shù)據(jù)庫復(fù)制’功能。

其他的進程

Postgres之外還有一些輔助的進程。這些進程都是由常駐postgres啟動的進程。

Writer process

Writer process在適當(dāng)?shù)臅r間點把共享內(nèi)存上的緩存寫往磁盤。通過這個進程,可以防止在檢查點的時候(checkpoint),大量的往磁盤寫而導(dǎo)致性能惡化,使得服務(wù)器可以保持比較穩(wěn)定的性能。Background writer起來以后就一直常駐內(nèi)存,但是并非一直在工作,它會在工作一段時間后進行休眠,休眠的時間間隔通過postgresql.conf里面的參數(shù)bgwriter_delay設(shè)置,默認是200微秒。

這個進程的另外一個重要的功能是定期執(zhí)行檢查點(checkpoint)。

檢查點的時候,會把共享內(nèi)存上的緩存內(nèi)容往數(shù)據(jù)庫文件寫,使得內(nèi)存和文件的狀態(tài)一致。通過這樣,可以在系統(tǒng)崩潰的時候可以縮短從WAL恢復(fù)的時間,另外也可以防止WAL無限的增長。 可以通過postgresql.conf的checkpoint_segments、checkpoint_timeout指定執(zhí)行檢查點的時間間隔。

WAL writer process

WAL writer process把共享內(nèi)存上的WAL緩存在適當(dāng)?shù)臅r間點往磁盤寫,通過這樣,可以減輕后端進程在寫自己的WAL緩存時的壓力,提高性能。另外,非同步提交設(shè)為true的時候,可以保證在一定的時間間隔內(nèi),把WAL緩存上的內(nèi)容寫入WAL日志文件。

Archive process

Archive process把WAL日志轉(zhuǎn)移到歸檔日志里。如果保存了基礎(chǔ)備份以及歸檔日志,即使實在磁盤完全損壞的時候,也可以回復(fù)數(shù)據(jù)庫到最新的狀態(tài)。

stats collector process

統(tǒng)計信息的收集進程。收集好統(tǒng)計表的訪問次數(shù),磁盤的訪問次數(shù)等信息。收集到的信息除了能被autovaccum利用,還可以給其他數(shù)據(jù)庫管理員作為數(shù)據(jù)庫管理的參考信息。

Logger process

把postgresql的活動狀態(tài)寫到日志信息文件(并非事務(wù)日志),在指定的時間間隔里面,對日志文件進行rotate.

Autovacuum啟動進程

autovacuum launcher process是依賴于postmaster間接啟動vacuum進程。而其自身是不直接啟動自動vacuum進程的。通過這樣可以提高系統(tǒng)的可靠性。

自動vacuum進程

autovacuum worker process進程實際執(zhí)行vacuum的任務(wù)。有時候會同時啟動多個vacuum進程。

wal sender / wal receiver

wal sender 進程和wal receiver進程是實現(xiàn)postgresql復(fù)制(streaming replication)的進程。Wal sender進程通過網(wǎng)絡(luò)傳送WAL日志,而其他PostgreSQL實例的wal receiver進程則接收相應(yīng)的日志。Wal receiver進程的宿主PostgreSQL(也稱為Standby)接受到WAL日志后,在自身的數(shù)據(jù)庫上還原,生成一個和發(fā)送端的PostgreSQL(也稱為Master)完全一樣的數(shù)據(jù)庫。

總結(jié)

以上是生活随笔為你收集整理的postgresql 客户端_Postgresql体系结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。