如何检查是否正在复制 Postgres 10 集群?

How to check if a Postgres 10 cluster is being replicated?

我正在编写一个 bash 脚本来将我们组织中的 Postgres 服务器从 9.6 升级到 10.4,在 Ubuntu trusty 下。我已经完成了主升级,但我们在开发、登台和生产中都有实例,有和没有备用服务器。我知道如何升级备用服务器,但我正在努力寻找一种通用方法来确定主服务器是否有备用服务器,如果有,还有它们的主机名。有人已经这样做了,可以分享一些关于这方面的信息吗?

在master上,可以看到pg_stat_replication中监听的standby服务器:

select client_addr, client_hostname from pg_stat_replication 

在standby上可以看到master在pg_stat_wal_receiver:

select conninfo from pg_stat_wal_receiver