大數據就業實戰培訓 Oracle就業實戰培訓
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。
Part 12:PostgreSQL WAL作用與管理
內容1:WAL物理與邏輯結構
內容2:WAL數據內部布局
內容3:WAL數據寫進程
內容4:WAL管理
內容5:WAL歸檔日志
WAL概述
· 沒有WAL的插入操作
· 有WAL的插入操作
· Insert操作與recovery
· 使用WAL進行數據庫恢復
事務日志與WAL文件
· 事務日志與WAL 段文件
使用內置函數pg_xlogfile_name(9.6或更早版本)或pg_walfile_name(10或更高版本),我們可以找到包含指定LSN的WAL段文件名。
WAL日志內部布局
· WAL內部布局
· 三類XLOG 數據部分記錄 (version 9.5 or later)
寫XLOG記錄
· 寫XLOG記錄
WAL寫處理
· WAL 寫進程
1、At commit
2、When wal buffer full
3、writes periodically
寫XLOG記錄
· Checkpoint 處理概述
pg_control File
· pg_control File30
即使pg_控制文件存儲超過40個項目,需要的三個項目如下所示:
State –最新檢查點啟動時數據庫服務器的狀態。總共有七種狀態:“啟動”是系統正在啟動的狀態;“關閉”是系統通過shut down命令正常關閉的狀態;“生產中”是系統正在運行的狀態;依此類推。
Latest checkpoint location –最新檢查點記錄的LSN位置。
Prior checkpoint location –先前檢查點記錄的LSN位置。
· 9.7.2. pg_control File
pg_control文件存儲位置:
postgres> pg_controldata /usr/local/pgsql/data
pg_control version number: 937
Catalog version number: 201405111
Database system identifier: 6035535450242021944
Database cluster state: in production
pg_control last modified: Mon Apr 27 15:16:38 2020
Latest checkpoint location: 0/C000F48
Prior checkpoint location: 0/C000E70
... snip ...
Database Recovery
· 數據庫實例恢復開始位置( 檢查點)
· 數據庫WAL日志記錄
· 利用wal進行數據庫恢復
WAL 文件管理
· WAL 日志切換
WAL 滿足以下條件發生日志切換:
1、WAL segment has been filled up.
2、The function pg_switch_wal has been issued.
3、archive_mode is enabled and the time set to archive_timeout has been exceeded.(基于主備復制需求)
· 創建新的WAL日志文件
· WAL日志文件刪除與回收(基于一個checkpoint完成過程)
· 文件管理WAL段文件的數量主要由以下三個參數控制:
1、checkpoint_segments (9.5版本后被廢棄)
2、checkpoint_completion_target (默認為0.5)
3、WAL_keep_segments
((2+checkpoint_completion_target)×checkpoint_segments+1)
數據庫歸檔
· 歸檔日志
連續歸檔是在WAL段切換時將WAL段文件復制到歸檔區域的功能,由archiver(后臺)進程執行。其中,占位符%p是復制的WAL段,而%f是存檔日志。
ALTER SYSTEM SET archive_command = 'cp %p /home/postgres/archives/%f';
ALTER SYSTEM SET archive_mod = on;
WAL 文件管理
· 發生切換時歸檔
· 設置wal相關參數
設置wal目錄最大可用尺寸(默認值為1024MB):max_wal_size
設置wal文件最大可用尺寸(默認值為16MB):wal_segment_size
設置wal緩沖區尺寸(默認值512KB):wal_buffers
以上就是Part 12 - PostgreSQL wal作用與管理 的內容,歡迎進群一起探討交流QQ交流群:752027153
微信交流群:聯系客服拉你進微信PG交流群
釘釘交流群:35822460,釘釘群有專門講解公開課
往期課程及視頻,聯系cuug咨詢老師