postgresql 10.x stream status check

有些名称发生了变化,xlog =>wal,location => lsn

pg_xlog_location_diff            pg_wal_lsn_diff
pg_current_xlog_location         pg_current_wal_lsn
pg_current_xlog_insert_location  pg_current_wal_insert_lsn
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid              | 17836
usesysid         | 16674
usename          | replicator
application_name | walreceiver
client_addr      | 192.168.56.101
client_hostname  | 
client_port      | 12955
backend_start    | 2018-03-01 17:03:29.129844+08
backend_xmin     | 
state            | streaming
sent_lsn         | 0/4CCFB4B8
write_lsn        | 0/4CCFB4B8
flush_lsn        | 0/4CCFB4B8
replay_lsn       | 0/4CCFB4B8
write_lag        | 
flush_lag        | 
replay_lag       | 
sync_priority    | 0
sync_state       | async

主库查询流复制落后字节数,主要看replay_delay数!
在主库 postgres超级用户连接到postgres库。
pg_current_wal_insert_lsn() 写入 wal buffer 的位置
pg_current_wal_lsn() 写入 wal 文件的位置

select client_addr, 
       pg_wal_lsn_diff(pg_current_wal_insert_lsn(), pg_current_wal_lsn() ) as local_noflush_delay,
       pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn) as local_sent_delay,
       pg_wal_lsn_diff(sent_lsn, write_lsn) as stream_write_delay,
       pg_wal_lsn_diff(sent_lsn, flush_lsn) as stream_flush_delay,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) as stream_replay_delay 
from pg_stat_replication
;

执行如下

postgres=# select client_addr, 
postgres-#        pg_wal_lsn_diff(pg_current_wal_insert_lsn(), pg_current_wal_lsn() ) as local_noflush_delay,
postgres-#        pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn) as local_sent_delay,
postgres-#        pg_wal_lsn_diff(sent_lsn, write_lsn) as stream_write_delay,
postgres-#        pg_wal_lsn_diff(sent_lsn, flush_lsn) as stream_flush_delay,
postgres-#        pg_wal_lsn_diff(sent_lsn, replay_lsn) as stream_replay_delay 
postgres-# from pg_stat_replication;
-[ RECORD 1 ]-------+------------
client_addr         | 192.168.56.101
local_noflush_delay | 0
local_sent_delay    | 0
stream_write_delay  | 0
stream_flush_delay  | 0
stream_replay_delay | 0

参考
https://www.postgresql.org/docs/10/static/functions-admin.html

posted @ 2018-03-05 20:26  peiybpeiyb  阅读(310)  评论(0编辑  收藏  举报