问题标签 [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 投票
4 回答
4794 浏览

database - 配置:错误:未安装 libpq 或 libpq 旧

我正在尝试在 Ubuntu 13.10 环境中安装 pgpool-II。我正在按照教程完成它。

我得到以下错误。

配置:错误:未安装 libpq 或 libpq 旧

从文档。

注意:pgpool-II 需要 PostgreSQL 7.4 或更高版本(版本 3 协议)中的 libpq 库。如果 configure 脚本显示以下错误信息,可能是 libpq 库没有安装,或者不是版本 3。

配置:错误:未安装 libpq 或 libpq 旧

如果库是版本 3,但仍显示上述消息,则您的 libpq 库可能无法被配置脚本识别。

configure 脚本在 /usr/local/pgsql libaray 下搜索 libpq 库。如果您已将 PostgreSQL 安装到 /usr/local/pgsql 以外的目录,请在执行 configure 时使用 --with-pgsql 或 --with-pgsql-includedir 和 --with-pgsql-libdir 命令行选项。

我正在使用下面的命令按照指示修复它,但它不起作用。

我也从 Database Administrators Stack Exchange关注了这一点。

我怎样才能解决这个问题?

0 投票
1 回答
338 浏览

postgresql - 使用 UPDATE 处理 CTE 的 pgpool

我正在运行启用负载平衡的 pgpool-II,以便它向我集群中的两台服务器发送只读查询。

但是,在某些情况下,我的 CTE 查询包含 UPDATE 命令,但底层查询是 SELECT,因此 pgpool 将其发送到从属服务器并由于只读性质而失败。

例如,此查询查找要显示的匹配项,并将它们标记为同时查看:

有什么建议可以让 pgpool 将其识别为写入查询,那么我应该将写入分开吗?

0 投票
1 回答
5080 浏览

postgresql - 无法连接到 pgpool

我在玩pgpool2

我正在使用命令连接到在端口 5432 上运行的 postgresqlpsql -U postgres -p 5432并且连接正常。

当我使用命令连接到在 9999 端口上运行的 pgpool2psql -U postgres -p 9999它会返回如下对话框: psql: root@master:/linux/path#

我做错了什么?有没有办法使用 psql 连接到 pgpool?我也无法从应用程序连接到它。

UPD我有以下错误pool_do_auth: maybe protocol version mismatch (current version 3)

已解决:问题出在后端的 pgpool auth 中。编辑pg_hba.conf修复的问题。

0 投票
2 回答
2157 浏览

java - 用于 Java/JDBC 应用程序的 PgPool 负载平衡

在 CentOS 上设置好 PgPool 的所有可能设置后,当我使用我的 Java 应用程序对其进行测试时,我发现它无法正常工作。
在阅读了互联网上的手册(您可以在此处找到)后,我发现如果 JDBC 语句已设置为 false(用于自动提交),它将无法正常工作。
由于我使用的是 Hibernate,所以我很确定它正在使用事务来设置值。
我的问题是,如果这是真的,哪种方法对复制我的数据库有用。我听说过并行模式,但我不确定它是否适用于 Java 应用程序。任何人都可以指导并为我提供样品吗?

0 投票
1 回答
408 浏览

node.js - Node.JS 和 pgpool 版本

我正在尝试使用 node.js 'pg' 模块通过 pgpool (pgpool-II) 调用 postgress。如果有人让这种设置工作,那么已知可以一起工作的正确版本的 pgpool-II 和正确版本的 'pg' 是什么?从我发现某些版本的 pg-pool 具有参数回归,所以你不能从 pg 调用它们(这是我现在正在经历的)。

0 投票
1 回答
792 浏览

watchdog - pgool2 看门狗不在虚拟 IP 接口上监听

我已经在复制模式下设置了一个 pgpool,看门狗有一个虚拟 IP(未使用的 IP)。pgpool 和看门狗启动成功完成。

使用指定的 IP 创建虚拟 eth0:0 接口192.168.143.95。pgPool 配置为在端口 5432 上运行

尝试连接到虚拟 IP 时:端口 psql 命令psql -h 192.168.143.95 -p 5432 -l psql: could not connect to server: Connection refused Is the server running on host "192.168.143.95" and accepting TCP/IP connections on port 5432?

显然,虚拟 IP 地址的任何端口上都没有侦听套接字。有没有人有类似的工作配置?虚拟 IP 地址是否有一些未指定的要求(例如与 pgpool 接口相同的子网)?

对于为什么这可能不起作用的任何建议,我将不胜感激。

非常感谢

0 投票
1 回答
5944 浏览

postgresql - pgpool II 复制和 postgresql 复制有什么区别?

我不完全是 DBA,所以我希望得到易于理解的回复。我必须为我们的数据库提供复制,而 pgpool 似乎更方便,因为如果一个 postgresql 实例失败,客户端不需要更改任何内容来继续工作,对吗?因此,在这种情况下,使用 pgpool 更有意义,但配置部分(对我而言)似乎更加复杂和混乱。例如,我需要在两个 postgresql 服务器上设置 WAL 吗?或者只有在我想设置 postgresql 复制时才需要这样做?我越是试图得到这些问题的答案,它就越不清晰。可能我忘了怎么用谷歌...

0 投票
0 回答
983 浏览

postgresql - 带有 PgPool 的 PostreSQL 运行速度极慢

我正在 PostgreSQL 上运行测试,看看它是否可以在相当繁忙的服务器上替代 MySQL。我有以下配置:

我感觉我的设置不如最优,因为基准测试证明它非常慢。

跑步ab -c 50 -n 10000时间超过 15 分钟

而同样的测试,在同一台服务器上但连接到 MySQL 只需要 1 秒!

注意:每个 ab 请求都是一个插入语句。Aslo我已将设置更改为以下,但结果并没有改善

硬件有 12GB RAM 和 Intel Xeon 2.40GHz。

0 投票
0 回答
1501 浏览

postgresql - 在多用户应用程序的情况下,如何使用 JDBC 从 pgPool-II 正确获取连接?

我的公司计划使用pgPool-II以受益于其“故障转移”“负载平衡”(以及最终的“复制”)功能。

我们在这里考虑我们有一个由服务器集群托管的J2EE Tomcat Web 应用程序,其中Jakarta Tomcat 连接器 (JK)或类似服务用于在客户端和这些Tomcat服务器之间建立链接(负载平衡)。此外,我们认为我们有一个PostgreSQL 9.3数据库集群,其中pgPool-II用于在Tomcat服务器集群和数据库集群之间进行链接。我们的应用程序是一个多用户应用程序,其中每个用户都与不同的角色相关联(当然就数据库而言)。

我了解到pgPool-II使用与postgreSQL相同的协议,所以要连接到池,我们只需要像我们通常连接到数据库一样连接到它,对吧?

这个邮件副本中,我看到有 2 个池层是没有用的,所以除了pgPool-II之外不需要使用JDBC Tomcat 池。要么我们将 pool 任务委托给JDBC Tomcat pool,要么我们将它委托给pgPool-II,对吧?

所以我最后的问题是:

  • 在这种情况下,如何使用JDBC从pgPool-II正确获取连接,每次用户需要执行SQL请求时,我是否必须简单地要求与pgPool-II建立新连接?不影响性能?

  • 哪个部分应该负责池任务以获得最佳性能?JDBC TomcatpgPool-II还是其他服务,如pgBouncer?最好的方法是什么?

提前致谢!

PS:如果有些地方不清楚,请告诉我,我会编辑我的帖子。

0 投票
1 回答
1561 浏览

python - Django CONN_MAX_AGE 使用 postgresql max_connections 失败

由于我CONN_MAX_AGE: 300在我的 Django 服务器上使用,请求失败并出现错误,因为 PostgreSQL 超出了max_connections限制(默认为 100)。

解决这个问题的最佳策略是什么?我试过使用 pgpool2,但这根本没有解决问题。现在连接由 pgpool 2 排队(让站点永远等待,并最终导致网关超时)。

我预计使用 pgpool 会减少进入 PostgreSQL 的空闲连接数,不会再次导致同样的问题。

这些是我使用的设置:

pgpool2:

num_init_children = 32 # are so many workers needed? max_pool = 10 # default is 4

postgres:

max_connections = 400 # upgraded from default 100

uWSGI/Django:

  • 所有工人都有20个线程。
  • 所有站点加起来总共有 10 名工人。

VPS 是一个 2.27GHz 的 8 核 Linode,具有 2GB 内存。