主頁 > 知識庫 > postgresql中wal_level的三個參數(shù)用法說明

postgresql中wal_level的三個參數(shù)用法說明

熱門標(biāo)簽:地圖標(biāo)注和圖片名稱的區(qū)別 合肥公司外呼系統(tǒng)運營商 外呼調(diào)研系統(tǒng) 辦公外呼電話系統(tǒng) 漯河外呼電話系統(tǒng) 重慶自動外呼系統(tǒng)定制 海豐有多少商家沒有地圖標(biāo)注 美容工作室地圖標(biāo)注 打電話智能電銷機器人授權(quán)

wal_level中有三個主要的參數(shù):minimal、archive和hot_standby

1、minimal是默認(rèn)的值,它僅寫入崩潰或者突發(fā)關(guān)機時所需要的信息(不建議使用)。

2、archive是增加wal歸檔所需的日志(最常用)。

3、hot_standby是在備用服務(wù)器上增加了運行只讀查詢所需的信息,一般實在流復(fù)制的時候使用到。

補充:postgresql WAL相關(guān)參數(shù)

配置文件

# - Settings -
wal_level = minimal     # minimal, replica, orlogical
         # (changerequires restart)
#fsync = on       # flush data to disk for crash safety
          # (turningthis off can cause
          # unrecoverable datacorruption)
#synchronous_commit =on    # synchronization level;
          # off, local,remote_write, remote_apply
,or on
#wal_sync_method =fsync    # the default is thefirst option
          # supported by theoperating system:
          # open_datasync
          # fdatasync (default on Linux)
          # fsync
          # fsync_writethrough
          # open_sync
full_page_writes =on     # recover from partial page writes
#wal_compression =off     # enable compression of full-pagewrites
#wal_log_hints =off     # also do full pagewrites of non-critic
al updates
         # (change requiresrestart)
#wal_buffers = -1     # min 32kB, -1 sets basedon shared_buffers
         # (change requiresrestart)
#wal_writer_delay = 200ms   # 1-10000 milliseconds
#wal_writer_flush_after= 1MB   # 0 disables
 
#commit_delay = 0     # range 0-100000, inmicroseconds
#commit_siblings =5     # range 1-1000
# - Checkpoints -
#checkpoint_timeout =5min   # range 30s-1d
#max_wal_size = 1GB
#min_wal_size = 80MB
#checkpoint_completion_target= 0.5  # checkpoint target duration,0.0 - 1.0
#checkpoint_flush_after= 0    # 0 disables          #default is 256kB on linux, 0 otherwise
#checkpoint_warning =30s    # 0 disables

wal_level

控制wal存儲的級別。wal_level決定有多少信息被寫入到WAL中。默認(rèn)值是最小的(minimal),其中只寫入從崩潰或立即關(guān)機中恢復(fù)的所需信息。replica 增加 wal 歸檔信息同時包括只讀服務(wù)器需要的信息。(9.6 中新增,將之前版本的 archive 和 hot_standby合并)

fsync

該參數(shù)直接控制日志是否先寫入磁盤。默認(rèn)值是ON(先寫入)。開啟該值時表明,更新數(shù)據(jù)寫入磁盤時系統(tǒng)必須等待WAL的寫入完成??梢耘渲迷搮?shù)為OFF,更新數(shù)據(jù)寫入磁盤完全不用等待WAL的寫入完成,沒有了等待的時間,顯然接下來的工作能夠更早的去做,節(jié)省了時間,提高了性能。其直接隱患是無法保證在系統(tǒng)崩潰時最近的事務(wù)能夠得到恢復(fù),也就無法保證相關(guān)數(shù)據(jù)的真實與正確性。

synchronous_commit

該參數(shù)表明是否等待WAL完成后才返回給用戶事務(wù)的狀態(tài)信息。默認(rèn)值是ON,表明必須等待WAL完成后才返回事務(wù)狀態(tài)信息。配置OFF值能夠更快的反饋回事務(wù)狀態(tài)。因參數(shù)只是控制事務(wù)的狀態(tài)反饋,因此對于數(shù)據(jù)的一致性不存在風(fēng)險。但事務(wù)的狀態(tài)信息影響著數(shù)據(jù)庫的整個狀態(tài)。該參數(shù)可以靈活的配置,對于業(yè)務(wù)沒有嚴(yán)謹(jǐn)要求的事務(wù)可以配置為OFF,能夠為系統(tǒng)的性能帶來不小的提升。

wal_sync_method

WAL 寫入磁盤的控制方式,默認(rèn)值是fsync??蛇x用值:open_datasync,fdatasync,fsync_writethrough,fsync,open_sync。一般采用默認(rèn)值即可,對于裸設(shè)備或文件系統(tǒng)的可選配置,在實際的使用中所帶來的方便相對fsync很有限。

full_page_writes

參數(shù)表明是否將整個page寫入WAL。postgresql中數(shù)據(jù)處理過程中的數(shù)據(jù)只保存在內(nèi)存和WAL中,在內(nèi)存中的整個page中包含更新提交和沒有提交的,如果不將整個page寫入WAL中,在介質(zhì)恢復(fù)的時候WAL中記錄的數(shù)據(jù)不足以實現(xiàn)完整的恢復(fù)(說白了就是無法實現(xiàn)介質(zhì)恢復(fù)時事務(wù)的回滾)。

wal_buffers

用于存放WAL數(shù)據(jù)的內(nèi)存空間,最小32K。

wal_writer_delay

WAL writer進程的間歇時間。默認(rèn)值是200ms。準(zhǔn)確的配置應(yīng)該根據(jù)自身系統(tǒng)的運行狀況。如果時間過長可能造成WAL buffer的內(nèi)存不足;反之過小將會引起WAL的不斷的寫入,對磁盤的IO也是很大考驗。

wal_writer_flush_after

wal write的字節(jié)數(shù)超過配置的閾值(wal_writer_flush_after)時,觸發(fā)fsync,默認(rèn)值為1MB,如果設(shè)置為0,關(guān)閉該特性(9.6版本新增的參數(shù))

commit_delay

表示一個已經(jīng)提交的數(shù)據(jù)在WAL buffer中存放的時間,單位ms,默認(rèn)值是0,不用延遲。非0值表示可能存在多個事務(wù)的WAL同時寫入磁盤。如果設(shè)置為非0,表明了某個事務(wù)執(zhí)行 commit后不會立即寫入WAL中,而仍存放在WAL buffer中,這樣對于后面的事務(wù)申請WAL buffer時非常不利,尤其是提交事務(wù)較多的高峰期,可能引起WAL buffer內(nèi)存不足。如果內(nèi)存足夠大,可以盡量延長該參數(shù)值,能夠使數(shù)據(jù)集中寫入這樣降低了系統(tǒng)的IO,提高了性能。同樣如果此時崩潰數(shù)據(jù)面臨著丟失的危險。

commit_siblings

該參數(shù)還決定了commit_delay的有效性。系統(tǒng)默認(rèn)值是5。表示當(dāng)一個事務(wù)發(fā)出提交請求,此時數(shù)據(jù)庫中正在執(zhí)行的事務(wù)數(shù)量大于5,則該事務(wù)將等待一段時間(commit_delay的值),反之,該事務(wù)則直接寫入WAL。

checkpoint_timeout

生成檢查點的最大的間隔時間。

checkpoint_completion_target

參數(shù)表示checkpoint的完成目標(biāo),系統(tǒng)默認(rèn)值是0.5,也就是說每個checkpoint需要在checkpoints間隔時間的50%內(nèi)完成。

PostgreSQL 9.5 廢棄了checkpoint_segments 參數(shù), 并引入max_wal_size 和 min_wal_size 參數(shù), 通過max_wal_size和checkpoint_completion_target參數(shù)來控制產(chǎn)生多少個XLOG后觸發(fā)檢查點, 通過min_wal_size和max_wal_size參數(shù)來控制哪些XLOG可以循環(huán)使用.

min_wal_size最小的wal 空間

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql 中的參數(shù)查看和修改方式
  • postgresql 性能參數(shù)配置方式
  • 基于PostgreSQL pg_hba.conf 配置參數(shù)的使用說明
  • PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說明
  • postgresql synchronous_commit參數(shù)的用法介紹
  • postgresql 中的幾個 timeout參數(shù) 用法說明

標(biāo)簽:錦州 衡陽 晉城 烏海 株洲 蚌埠 珠海 來賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgresql中wal_level的三個參數(shù)用法說明》,本文關(guān)鍵詞  postgresql,中,wal,level,的,三個,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《postgresql中wal_level的三個參數(shù)用法說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于postgresql中wal_level的三個參數(shù)用法說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章