如果主服务器不可用,PL/Proxy 是否向副本发送查询?

Does PL/Proxy send query to replica if master is not available?

我已经对 Postgre 数据库进行了分片和复制。我使用 运行ning 函数的 CLUSTER + 运行 方式。我使用 CLUSTER 参数定义目标 (master/replica),使用 运行 ON 定义分片。如果最初目标是副本,但它失败了,我如何使 PL/Proxy 运行 或不 运行 在主服务器上运行?

在 PL/Proxy 中,您通过 libpq 连接字符串定义分片。现在如果一个分片被复制,你可以简单地使用像

这样的连接字符串
host=slave.myorg.com,master.myorg.com port=5432,5432 dbname=...

这将尝试连接到第一台主机,如果失败,它将回退到第二台主机。 PostgreSQL v14 有额外的连接字符串参数 target_session_attrs=prefer-standby 以优先连接到备用服务器,即使它不是列表中的第一个。