问题标签 [pgpool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
221 浏览

cygwin - pgpool 是否在 cygwin 上运行

你知道 pgpool 是否在 windows 上使用 cygwin 运行?如果是这样,知道任何教程吗?

谢谢,

0 投票
0 回答
2417 浏览

mysql - MySQL 的 pgpool-II 等价物

是否有任何工具等效于 MySQL db 的pgpool-II(用于 PostgreSQL)?

对我来说特别重要的是功能 - 负载平衡

负载均衡

如果复制了数据库,则在任何服务器上执行 SELECT 查询都将返回相同的结果。pgpool-II 利用复制功能通过在多个服务器之间分配 SELECT 查询来减少每个 PostgreSQL 服务器的负载,从而提高系统的整体吞吐量。充其量,性能的提高与 PostgreSQL 服务器的数量成正比。负载平衡在有很​​多用户同时执行许多查询的情况下效果最好。

0 投票
1 回答
3037 浏览

database - 在 master_slave 模式下配置 pgpool 无法针对后端进行身份验证

我正在尝试在 2 个以上的 Web 服务器上运行 pgpool,这些服务器也有一个 rails 应用程序等。这个想法是通过 slony 或流进行复制,并通过 pgpool 进行故障转移。将查询平衡到 replca 和 Web 服务器连接池也很好,但重要的是让 master_slave 和故障转移正常工作。

我从 Ubuntu 10.04 LTS 上的 apt 包安装了 pgpool 版本 3.4.1(lainihi)。db01 是 master 并通过 slony 复制到 db02。我的 pgpool.conf 看起来像这样:

它现在在“原始模式”下工作,我想知道我是否会从 master_slave 获得很多?无论如何,如果我取消注释 master_slave=true 我在连接时会得到以下信息:

在 pgpool 日志中,我看到以下内容

似乎 pgpool 无法通过后端进行身份验证,但我可以使用 psql 从每个客户端连接到每个后端服务器就好了,正如我所说 pgpool 在“原始模式”下工作。

任何帮助配置 pgpool 将不胜感激。它看起来是一个很好的解决方案,但设置它比预期的要困难。

TIA,

丹尼斯

0 投票
3 回答
3961 浏览

php - postgresql、pgpool 和 php 的光标错误

嘿,我正在努力确定在我们的发布环境中出现的错误的确切原因。在谷歌上似乎没有太多处理这个特定错误。

这是我们收到的错误消息:

SQLSTATE[34000]:游标名称无效:7 错误:门户“”不存在

仅当我们使用 PDO 准备语句时才会弹出错误。

这是我们发布环境的设置:

  1. pgpool 3.0.1(postgresql 后端处于流复制模式!)
  2. PHP 5.3.5
  3. PostgreSQL 9.0

编辑:架构是 64 位的。

在我们的测试环境中没有出现同样的错误(编辑:忘了提,标准测试环境使用没有 pgpool 的 Postgresql 9.0)。因此,我怀疑 pgpool 至少部分是可疑的。

有谁知道这个错误的可能原因是什么?

编辑:好的,这是导致错误的代码类型的示例。

编辑:一些日志文件输出;

PostgreSQL:

pgpool:

0 投票
1 回答
1145 浏览

java - Solr 导入数据库字段问题。如何使用 postgres pgpool 连接?

我正在使用 postgres 数据库和 pgpool 。Postgres 数据库端口:5432 工作正常。但我正在使用 Pgpool 端口:9999 不起作用。

我的导入 xml 文件(myproduct.xml工作

不工作

是 pgpool 问题还是 solr 问题?请任何人让我知道这些问题以及如何解决 pgpool 这个问题?

0 投票
2 回答
7996 浏览

postgresql - 使用 PGPool-ii 在 Amazon EC2 上部署高可用性 Postresql 9.0

我们有一个使用 Postgresql 9.0 和 PGPool-ii 的现有 Web 应用程序。我正在考虑将我们的基础设施迁移到 Amazon EC2,并受到以下链接的启发:http: //aws.typepad.com/aws/2008/12/running-everything-on-aws-soocialcom.html ://aws.typepad.com/aws/2008/12/running-everything-on-aws-soocialcom.html使用类似的架构.

由于 Amazon RDS 不支持 PGSQL,我们将坚持使用 PGPool-ii 对不同数据库服务器上的查询进行负载平衡,并保持它们彼此之间的同步。

所以我们计划部署 3 个前端 Web 服务器,其中包含以下内容: - Web 服务器 + PHP 代码 - PGPool-ii

然后,我们将在单独的 Amazon 实例上拥有 2 个数据库服务器,仅使用 PGSQL。这 2 台 PG 服务器将由位于 3 台前端服务器上的 PGPool 使用。

我的问题是我不知道这个解决方案是否足够可靠,因为多个 PGPool 将访问多个 PGSQL 服务器。PGPool 的大多数示例都演示了使用 N 个底层 PGSQL 服务器的单个 PGPool。在每个 Web 服务器上部署 PGPool 实例是一种好习惯吗?

如果没有,是否有任何其他/更好的架构来避免使用 Amazon 的 SPOF?

非常感谢您的回复。

0 投票
2 回答
1126 浏览

postgresql - pgpool-II 的 health_check_user 需要什么权限?

我对pg_pool-II 的文档中的一点感到困惑。health_check_user用于确定数据库集群服务器的健康状况,但需要哪些能力health_check_user?由于没有配置选项来获取该用户的密码,我假设 pg-poolhealth_check_user同样需要对每个数据库的信任级别访问?

0 投票
1 回答
3878 浏览

postgresql - Slony 和 PGPool 用于故障转移

我们正在考虑将 Slony 和 PGPool 作为在我们的应用程序中处理故障转移的替代方案——看起来因为我们至少需要两个数据库服务器,所以我们也可以利用负载平衡——

在什么情况下 Slony 比 PGPool 好,反之亦然?

0 投票
2 回答
4944 浏览

java - 针对 PGPool II 的 Java 查询导致“未命名的准备好的语句不存在”错误

我有一个使用 Postgres 数据库的 Java 应用程序,我正在尝试引入 PGPool 以扩展我的数据库。我遇到了 Postgres 抛出以下错误的问题:unnamed prepared statement does not exist. 在 Postgres 上启动日志记录后,我看到我的应用程序执行的每个选择语句都会发生以下情况:

但有时,在解析/绑定/执行步骤之间,PGPool 会执行一些额外的查询,因此日志如下所示:

据我了解,因为查询是未命名的,所以如果在执行未命名查询之前在该数据库会话期间有另一个查询进入,它会被 Postgres 丢弃。因此,因为 PGPool 有时会在解析/绑定/执行步骤之间发出这些额外的查询,所以会导致查询被丢弃。

我的第一个想法是,也许我的 Java 应用程序不需要为每个查询发送解析/绑定/执行语句。但看起来这是自 JDBC 版本 3 和 Postgres 7.4 http://jdbc.postgresql.org/documentation/head/server-prepare.html以来 Postgres JDBC 驱动程序的默认行为。我想我可以尝试完全禁用服务器端准备好的语句,但是文档没有指定如何做到这一点,而且我不确定这是我想做的事情。

我的第二个想法是让 PGPool II 停止发送这些元数据查询。由于我只是想将 PGPool 用作负载均衡器,我真的不明白为什么它需要了解我的表元数据的所有信息。我在 PGPool 源的 is_system_catalog 方法中跟踪了执行这些查询的代码:https ://github.com/iakio/pgpool-II/blob/master/pool_select_walker.c#L256 看来 PGPool 想知道关于我的表关系出于某种原因,不幸的是我没有看到任何方法来禁用该行为。

任何有关如何解决此问题的见解将不胜感激。

关于我的环境的一些信息:

更新: 我找到了解决该问题的方法。通过放置protocolVersion=2JDBC URL,它基本上告诉 Postgres JDBC 驱动程序不要使用服务器端准备好的语句。这允许我的应用程序在我的数据库前使用 PGPool II 时运行。不过,我不得不回退到 JDBC 版本 2 协议才能使用 PGPool,这让我感到困扰。

0 投票
4 回答
5542 浏览

postgresql - Postgres 9.0 和 pgpool 复制:单点故障?

我的应用程序使用 Postgresql 9.0,由一个或多个与全局数据库交互的站组成:它就像一个普通的客户端服务器应用程序,但为了避免任何额外的硬件,所有站都包括客户端和服务器:一个主站被提升为行动也作为服务器,任何其他行为作为它的客户端。该解决方案使我具有可扩展性:用户最初可能需要一个站点,但它可以决定将来扩展到更多站点,而在初始阶段没有无用的单独服务器。

如果主站出现故障,我会尽量避免所有其他人停止工作;要做到这一点,最好的解决方案可能是将主数据库连续复制到一个或多个站点上未使用的数据库。

搜索我发现 pgpool 可用于满足我的需要,但从所有示例和教程看来,故障点似乎从主数据库移动到运行 pgpool 的服务器

我读了一些关于多个 pgpool 和心跳工具的东西,但不清楚如何去做。

考虑到我的架构,哪里不存在分离和专门的服务器,有人可以给我一些提示吗?如果发生故障转移,似乎 pgpool 会自动执行所有操作,我是否可以认为故障转移情况可以由标准用户处理而无需管理员干预?