大數據就業實戰培訓 Oracle就業實戰培訓
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。
Part 13:full-page Writes
內容1:PostgreSQL全頁寫概述
內容2:PostgreSQL 全頁寫特點
內容3:塊不一致造成的原因
內容4:是否可以禁用全頁寫
全頁寫概述
· Full-Page Writes(全頁寫)
Full-Page Writes 特點
· 什么是全頁寫
把數據塊寫入到WAL日志中
· 目的是為了什么
解決塊不一致問題,保護數據的完整性
· 有哪些缺點
全頁寫會導致WAL日志膨脹,增加額外I/O
· 如何控制
full_page_writes
Full-Page Writes 模式
全頁寫模式
· 非強制模式:最近一次檢查點之后,第一次修改的數據塊會進行全頁寫,后續再修改時不會進行全頁寫,直到下一次檢查點發生。
· 強制模式:當用pg_basebackup對數據庫進行備份時,會自動執行強制模式,在備份期間被修改的數據塊會全部寫入WAL當中。執行pg_start_backup時,系統也會進入全頁寫模式。
塊不一致
塊不一致的原因
· 操作系統進行I/O操作時,總是以塊為單位,比如512字節、1KB等等。
· 數據庫塊一般是操作系統塊的整數倍,比如2k、4k、8k等等。
· 塊是數據庫最小的I/O單位,當數據庫寫一個數據塊時,操作系統需要I/O多次,可能在I/O過程中系統斷電、磁盤故障等等原因導致一個數據塊沒有完整的寫入,導致塊不一致。
全頁寫是否需要關閉
· 全頁寫會導致WAL日志膨脹,增加額外I/O,影響數據庫整體性能
· 禁用全頁寫理由
如果數據庫有完整的備份,可以禁用全頁寫
如果優先考慮從數據庫整體性能,可以禁用全頁寫
選擇能夠阻止部分頁面寫入的文件系統(比如ZFS)
以上就是Part 13 - PostgreSQL full-page Writes 的內容,歡迎進群一起探討交流QQ交流群:752027153
微信交流群:聯系客服拉你進微信PG交流群
釘釘交流群:35822460,釘釘群有專門講解公開課
往期課程及視頻,聯系cuug咨詢老師