PG wal日誌LSN相關函式
如下對PG一些wal以及LSN相關函式進行介紹
1.wal檔名組成
wal在$PGDATA/pg_wal下。10之前為pg_xlog
wal命名格式檔名稱為16進位制的24個字元組成,每8個字元一組,每組的意義如下:
00000001 00000000 00000001 -------- -------- -------- 時間線 邏輯id 物理id
2.檢視wal時間
postgres=# select * from pg_ls_waldir() order by modification asc;
pg_ls_waldir返回預寫式日誌(WAL)目錄中每個檔案的名稱、尺寸以及最後的修改時間(mtime)。
預設情況下,只有超級使用者以及pg_monitor角色的成員能夠使用這個函式。可以使用GRANT把訪問授予給其他人。
3.確認當前的日誌的以及LSN號
select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn());
預寫式日誌寫入位置、轉換預寫式日誌檔名、轉換預寫式日誌位置為檔名以及檔案內的十進位制位元組偏移量
4.檢視當前的預寫式日誌刷寫位置、當前預寫式日誌插入位置、當前預寫式日誌寫入位置
select pg_current_wal_flush_lsn(),pg_current_wal_insert_lsn(),pg_current_wal_lsn();
5.計算兩個預寫式日誌位置間的差別
select pg_wal_lsn_diff('0/8BF6C80','0/8BF6C68');
pg_wal_lsn_diff以位元組數計算兩個預寫日誌位置之間的差別。它可以和pg_stat_replication一起使用來獲得複製延遲。
6.恢復相關位置及時間戳
獲得最後一個收到並由流複製同步到磁碟的預寫日誌位置。當流複製在進行中時,這將單調增加。如果恢復已經完成,這將保持靜止在恢復過程中收到並同步到磁碟的最後一個 WAL 記錄。如果流複製被禁用,或者還沒有被啟動,該函式返回 NULL
select pg_last_wal_receive_lsn();
獲得恢復過程中被重放的最後一個預寫日誌位置。當流複製在進行中時,這將單調增加。如果恢復已經完成,這將保持靜止在恢復過程中被應用的最後一個 WAL 記錄。如果伺服器被正常啟動而沒有恢復,該函式返回 NULL。
select pg_last_wal_replay_lsn();
獲得恢復過程中被重放的最後一個事務的時間戳。這是在主機上產生的事務的提交或中止 WAL 記錄·的時間。如果在恢復過程中沒有事務被重放,這個函式返回 NULL。否則,如果恢復仍在進行這將單調增加。如果恢復已經完成,則這個值會保持靜止在恢復過程中最後一個被應用的事務。如果伺服器被正常啟動而沒有恢復,該函式返回 NULL。
select pg_last_xact_replay_timestamp();
監控主庫延遲
方式一、透過WAL延遲時間衡量
select pid,usename,client_addr,state,write_lag,flush_lag,replay_lag from pg_stat_replication;
pg10前使用:
select extract(second from now() - pg_last_xact_replay_timestamp());
方式二、透過WAL日誌應用延遲量衡量
透過流複製備庫WAL的應用位置和主庫本地WAL寫入位置之間的WAL日誌量能夠準確判斷主備延時,在流複製主庫執行以下SQL:
select pid,usename,client_addr,state,
pg_wal_lsn_diff(pg_current_wal_lsn(),write_lsn) write_delay,
pg_wal_lsn_diff(pg_current_wal_lsn(),flush_lsn) flush_delay,
pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) replay_dely
from pg_stat_replication;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2846602/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PG】PostgreSQL 預寫日誌(WAL)、checkpoint、LSNSQL
- PG wal 日誌的物理儲存分析
- Postgres使用pg_resetwal命令修改wal日誌檔案大小的方法
- PG啟動流程StartupXlog函式回放日誌前處理函式
- pg日誌分析
- 日誌系統相關
- Postgresqlg關於wal日誌總結,一文搞清楚它的所有概念和相關操作SQL
- 非易失性WAL BUFFER解析:WAL日誌讀寫改造
- DB2日誌相關DB2
- Springboot日誌相關Spring Boot
- 讀寫日誌函式函式
- SQLSERVER 事務日誌的 LSN 到底是什麼?SQLServer
- EBS相關日誌和引數
- 物件及函式相關物件函式
- 字串的相關函式字串函式
- SAP PP相關函式函式
- Python 函式相關Python函式
- 正規表示式☞相關函式函式
- LightDB不記錄WAL日誌的表
- pg許可權相關
- PG extract 函式示例函式
- Linux 查詢 日誌 相關命令Linux
- 重做日誌檔案的相關操作
- 重做日誌(redo log)相關總結
- ES6 函式相關函式
- 3.3 數學相關函式函式
- SQL 日期格式相關函式SQL函式
- 函式組:CSAP(BOM 相關)函式
- SQL Server資料庫事務日誌序列號(LSN)介紹SQLServer資料庫
- PostgreSQL-開啟PG日誌(六)SQL
- PostgreSQL DBA(172) - PG 13(WAL activity in EXPLAIN)SQLAI
- PostgreSQL的xlog/Wal歸檔及日誌清理SQL
- 從原始碼角度看CPU相關日誌原始碼
- MySQL慢查詢日誌相關設定MySql
- oracle cluster叢集相關日誌檢視Oracle
- linux日誌相關的具體命令Linux
- 字串相關函式的實現字串函式
- PostgreSQL的pg_log日誌目錄SQL