PostgreSQL的xlog/Wal歸檔及日誌清理
xlog/wal日誌
類似於Oracle的redo, PostgreSQL 的redo檔案被稱為WAL檔案或XLOG檔案,存放在$PGDATA/pg_xlog 或($PGDATA/pg_wal)目錄中( Postgresql 從 10 版本開始,將所用xlog相關的全部用wal替換了)。 任何試圖修改資料庫資料的操作都會寫一份日誌到磁碟。
本文舉例的資料庫版本為 (PostgreSQL) 11.5
wal命名格式檔名稱為16進位制的24個字元組成,每8個字元一組,每組的意義如下:
00000001 00000000 00000001 -------- -------- -------- 時間線 邏輯id 物理id
透過select pg_switch_xlog();或select pg_switch_wal();可以切換xlog/wal日誌。
歸檔目錄
如果開啟了歸檔,則在歸檔路徑下的archive_status目錄裡, 會有類似000000010000000000000002.ready和000000010000000000000003.done的檔案。
.ready表示XLOG檔案已寫滿,可以呼叫歸檔命令了,.done表示已歸檔完成。開啟了歸檔後,只有歸檔成功的pg_xlog檔案才會被清除。在每次歸檔命令被執行後,會觸發清除標籤的動作,在執行檢查點時,也會觸發清除歸檔標籤檔案的動作。
影響wal儲存的最大個數的引數
checkpoint_segments 和 wal_keep_segments,checkpoint_completion_target
通常地說,WAL 最大個數不超過: ( 2 + checkpoint_completion_target ) * checkpoint_segments + 1 在流複製環境下, WAL 最大數不超過: wal_keep_segments + checkpoint_segments + 1
超過的話會自動清理。
預設的 WAL segments 為 16 M, 這個引數在PG 編譯執行 ./configure 時,指定 “–with-wal-segsize=target_value” 引數設定。
手動清理wal(通常情況下儘量讓資料庫自動清理,避免錯誤操作)
如果配置了archive_mode=on,但是沒有配置archive_command,那麼xlog檔案會一直堆積(xlog寫完後,會寫.ready,但是由於沒有配置archive_command,也就是說不會觸發歸檔命令,所以一直都不會寫.done),所以xlog會一直不清理。
1)讀取控制檔案,找到能清理的xlog範圍
pg_controldata $PGDATA
表示000000010000000000000009之前的檔案可以刪除
2)透過pg_archivecleanup清理
[postgres@t1ysl bin]$ pg_archivecleanup -d $PGDATA/pg_wal 000000010000000000000009
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2782598/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL 歸檔日誌SQL
- Oracle歸檔日誌清理Oracle
- MogDB/openGauss誤刪未歸檔的xlog日誌如何解決
- 【PG】PostgreSQL 預寫日誌(WAL)、checkpoint、LSNSQL
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 歸檔日誌挖掘
- oracle歸檔日誌Oracle
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- 日誌檔案過大清理
- 歸檔oracle alert日誌Oracle
- 14. 日誌歸檔
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- zookeeper 清理snapshot及事務日誌
- 批量註冊歸檔日誌
- PostgreSQL如何刪除不使用的xlog檔案SQL
- ArgoWorkflow教程(四)---Workflow & 日誌歸檔Go
- logminer異機挖掘歸檔日誌
- DG歸檔日誌缺失恢復
- oracle 刪除過期的歸檔日誌Oracle
- LightDB不記錄WAL日誌的表
- PG wal 日誌的物理儲存分析
- Postgres使用pg_resetwal命令修改wal日誌檔案大小的方法
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- PostgreSQL DBA(15) - WAL檔案結構SQL
- oracle11G歸檔日誌管理Oracle
- rman 還原歸檔日誌(restore archivelogRESTHive
- 非易失性WAL BUFFER解析:WAL日誌讀寫改造
- oracle rman備份歸檔日誌需要先切換日誌嗎Oracle
- 測試在丟失歸檔日誌的情況下,跳過部分歸檔日誌進行資料恢復資料恢復
- PostgreSQL xlog格式之checkpointSQL
- Oracle設定多個歸檔路徑生成多份歸檔日誌,Rman備份時也只備份其中的一份歸檔日誌Oracle
- PostgreSQL的wal_buffersSQL
- Oracle歸檔日誌暴增排查優化Oracle優化
- 【SQL】Oracle 歸檔日誌暴增原因分析SQLOracle
- oracle dg 歸檔日誌恢復情況Oracle
- RMAN備份整庫和歸檔日誌的方法
- PG wal日誌LSN相關函式函式
- docker 容器日誌清理方案Docker