文章目錄
- 如何分辨主、備
-
- 看程序
- 函數方法
- 檢查流複制同步情況
-
- 檢查主庫傳輸
- 檢查備庫恢複
如何分辨主、備
看程序
- 主庫 – 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)
那我這個就是主庫喽~
檢查流複制同步情況
- 先确定主庫傳到哪兒了
- 在确定備庫接收到哪兒了
- 最後确定備庫應用到哪兒了
檢查主庫傳輸
确定主庫傳到什麼位置了
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)