【问题标题】:Query to PgPool-II and command show pool_nodes not working查询 PgPool-II 和命令 show pool_nodes not working
【发布时间】:2020-08-28 11:35:52
【问题描述】:

我有一个通过 PgPool-II 集群连接到 PostgreSQL 服务器的网络核心应用程序。它工作得很好,除了当我尝试使用 pgpool sql 命令时,例如“show pool_nodes”,这些命令似乎通过 pgpool 传递,而是进入一个抛出错误的 PostgreSQL 服务器(它应该)。

似乎 Npgsql 使用了“扩展查询协议”,它不适用于 pgpool sql 命令。他们需要“简单查询协议”。

有没有办法在 Npgsql 中使用“简单查询协议”? 如果没有,是否有任何其他方式发送带有 net core 但不使用 Npgsql 的 PostgreSQL 查询?

【问题讨论】:

    标签: c# .net-core npgsql pgpool


    【解决方案1】:

    不,您目前无法通过 PostgreSQL 简单协议发送用户指定的查询。 Npgsql 对一些内部命令(例如 COMMIT)使用简单协议,但面向用户的查询 API 始终使用扩展协议。

    我会用 PgPool-II 提出这个问题,他们似乎也应该拦截扩展协议消息 - 毕竟它是标准 PostgreSQL 协议的一部分(请在此处发布指向该问题的链接)。如果由于某种原因确实不可能,您可以在Npgsql repo 上打开一个问题以添加一些用于生成简单查询的 API。

    【讨论】:

      【解决方案2】:

      我通过解决方法解决了这个问题。

      我从网络核心代码调用 psql 命令应用程序并让它处理对 pgpool 集群的请求。这不是我想要的好解决方案,但它确实有效。

      【讨论】:

        猜你喜欢
        • 2015-01-13
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 2020-05-24
        • 1970-01-01
        • 2018-07-13
        • 2012-05-08
        • 1970-01-01
        相关资源
        最近更新 更多