我正在编写一段bash脚本,用于将我们组织中的Postgres服务器从9.6升级到10.4版本,在Ubuntu Trusty系统下运行。我已经完成了主升级,但我们在开发、测试和生产环境中可能有带有或不带有备用服务器的实例。我知道如何升级备用服务器,但我苦于找不到一个通用的方法来确定主服务器是否有备用服务器,如果有的话,它们的主机名是什么。有没有人已经做过这个,并能分享一些想法?
我正在编写一段bash脚本,用于将我们组织中的Postgres服务器从9.6升级到10.4版本,在Ubuntu Trusty系统下运行。我已经完成了主升级,但我们在开发、测试和生产环境中可能有带有或不带有备用服务器的实例。我知道如何升级备用服务器,但我苦于找不到一个通用的方法来确定主服务器是否有备用服务器,如果有的话,它们的主机名是什么。有没有人已经做过这个,并能分享一些想法?
在主服务器上,您可以在pg_stat_replication
中看到待机服务器的监听情况:
select client_addr, client_hostname from pg_stat_replication
在备机上,您可以在 pg_stat_wal_receiver
中看到主服务器的情况:
select conninfo from pg_stat_wal_receiver
pg_stat_replication
问题,已将备用方案添加到答案中。 - Andomarsudo -u postgres psql -t -c "select to_json(client_addr) from pg_stat_replication;"
- Juan Jimenezpg_stat_replication
显示活动的监听器。您是否使用了一个指示它作为热备而启动的recovery.conf
启动服务器? - Andomar