天天看點

PostgreSQL 流複制資料同步檢查如何分辨主、備檢查流複制同步情況

文章目錄

  • 如何分辨主、備
    • 看程序
    • 函數方法
  • 檢查流複制同步情況
    • 檢查主庫傳輸
    • 檢查備庫恢複

如何分辨主、備

看程序

  • 主庫 – walwriter
[[email protected] PG_12_201909212]# ps -ef| grep wal
postgres 21157 21151  0 15:57 ?        00:00:00 postgres: walwriter                                   
postgres 21168 21151  0 15:57 ?        00:00:00 postgres: walsender repuser 192.168.56.102(38473) streaming 0/2A0001C0
           
  • 備庫 – walreceiver
[[email protected] ~]# ps -ef | grep wal
postgres 13383 13369  0 14:08 ?        00:00:01 postgres: walreceiver   streaming 0/2A0001C0          
           

函數方法

一句話判斷哪個是主庫、哪個是備庫,傳回的值:

f

為主庫

t

為備庫

postgres=# select pg_is_in_recovery();

 pg_is_in_recovery 
-------------------
 f
(1 row)

           

那我這個就是主庫喽~

檢查流複制同步情況

  1. 先确定主庫傳到哪兒了
  2. 在确定備庫接收到哪兒了
  3. 最後确定備庫應用到哪兒了

檢查主庫傳輸

确定主庫傳到什麼位置了

postgres=# select pg_current_wal_lsn();
 pg_current_wal_lsn 
--------------------
 0/2A0001C0
(1 row)
           

檢查備庫恢複

  • 确定備庫接收到哪兒了
postgres=# select pg_last_wal_receive_lsn();
 pg_last_wal_receive_lsn 
-------------------------
 0/2A0001C0
(1 row)
           
  • 确定備庫應用到哪兒了
postgres=# select pg_last_wal_replay_lsn();
 pg_last_wal_replay_lsn 
------------------------
 0/2A0001C0
(1 row)

           
  • 最近事務應用的時間
postgres=# select pg_last_xact_replay_timestamp();
 pg_last_xact_replay_timestamp 
-------------------------------
 2020-03-05 15:20:22.125688+08
(1 row)
           

繼續閱讀