在数据库的架构模式中通常是有多个节点组成的,那么这些节点我们如何去判断一个节点是主库还是从库,下面我写了几种判断节点是主还是从的方法。
方法一 通过查看 wal 进程来判断
ps -ef | grep "wal" | grep -v "grep"
输出 wal sender......streaming 进程说明当前数据库为主库
输出 wal receiverstreaing 进程说明当前数据库为备库
方法二 通过查看视图表 pg_stat_replication 如果返回记录说明是主库,无记录则为备库
select * from pg_stat_replication;
方法三 通过查看视图表 pg_stat_wal_receiver 如果返回记录说明是备库,无记录则为主库
select * from pg_stat_wal_receiver;
方法四 通过函数 pg_is_in_recovery() 返回 f 表示主库,t 表示从库
select pg_is_in_recovery();