PG wal日誌LSN相關函式

T1YSL發表於2021-12-08

如下對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;

image.png

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());

image.png

預寫式日誌寫入位置、轉換預寫式日誌檔名、轉換預寫式日誌位置為檔名以及檔案內的十進位制位元組偏移量

4.檢視當前的預寫式日誌刷寫位置、當前預寫式日誌插入位置、當前預寫式日誌寫入位置

select pg_current_wal_flush_lsn(),pg_current_wal_insert_lsn(),pg_current_wal_lsn();

image.png

5.計算兩個預寫式日誌位置間的差別

select pg_wal_lsn_diff('0/8BF6C80','0/8BF6C68');

image.png

pg_wal_lsn_diff以位元組數計算兩個預寫日誌位置之間的差別。它可以和pg_stat_replication一起使用來獲得複製延遲。

6.恢復相關位置及時間戳

獲得最後一個收到並由流複製同步到磁碟的預寫日誌位置。當流複製在進行中時,這將單調增加。如果恢復已經完成,這將保持靜止在恢復過程中收到並同步到磁碟的最後一個 WAL 記錄。如果流複製被禁用,或者還沒有被啟動,該函式返回 NULL

select pg_last_wal_receive_lsn();

image.png

獲得恢復過程中被重放的最後一個預寫日誌位置。當流複製在進行中時,這將單調增加。如果恢復已經完成,這將保持靜止在恢復過程中被應用的最後一個 WAL 記錄。如果伺服器被正常啟動而沒有恢復,該函式返回 NULL。

select pg_last_wal_replay_lsn();

image.png

獲得恢復過程中被重放的最後一個事務的時間戳。這是在主機上產生的事務的提交或中止 WAL 記錄·的時間。如果在恢復過程中沒有事務被重放,這個函式返回 NULL。否則,如果恢復仍在進行這將單調增加。如果恢復已經完成,則這個值會保持靜止在恢復過程中最後一個被應用的事務。如果伺服器被正常啟動而沒有恢復,該函式返回 NULL。

select pg_last_xact_replay_timestamp();

image.png

監控主庫延遲

方式一、透過WAL延遲時間衡量
select pid,usename,client_addr,state,write_lag,flush_lag,replay_lag from pg_stat_replication;
image.png
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;
image.png


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2846602/,如需轉載,請註明出處,否則將追究法律責任。

相關文章