问题标签 [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 回答
165 浏览

postgresql - 基于表的 Postgres 主/从

目前我有 1 个 postgres 实例,它开始接收过多的负载,并希望创建一个包含 2 个 postgres 节点的集群。

从阅读 postgres 和 pgpool 的文档来看,我似乎只能写入主机并从从机读取或运行并行查询。

我正在寻找的是数据库的简单复制,但主/从基于正在更新的表。这可能吗?我在文档中的某个地方错过了它吗?

例如

0 投票
1 回答
2447 浏览

database - 无法使用 pgpool II 自动恢复失败的 postgresql 主节点

我是 Postgresql 和 Pgpool II 设置的新手。我已经使用 Pgpool 和 Repmgr 配置了 Postgresql HA/负载平衡。

我已按照链接进行设置。

当我关闭主节点时,故障转移成功发生,从节点接管为新的主节点。
故障转移后,我必须手动恢复故障节点并将其与新的主节点同步。

我想自动化恢复过程。

pgpool 节点上的pgpool.conf文件包含参数recovery_1st_stage_command。我在网上搜索了源码,发现参数“recovery_1st_stage_command”应该是在Pgpool节点的配置文件pgpool.conf中设置的。

我已经设置了参数recovery_1st_stage_command = 'basebackup.sh'。我已将脚本'basebackup.sh'文件放在数据目录'/var/lib/pgsql/9.4/data'下的两个 Postgresql 节点上。

此外,我已将脚本 'pgpool_remote_start' 放置在目录 '/var/lib/pgsql/9.4/data' 下的两个数据库节点上。

还在数据库节点上创建了 pgpool 扩展 pgpool_recovery 和 pgpool_adm。

当主节点停止时,会发生故障转移,但不会执行恢复脚本“basebackup.sh”。
我检查了 pgpool 日志并启用了调试级别。仍然无法找到脚本是否被执行。

请帮助我进行故障节点的自动在线恢复。找到我使用的脚本。

基本备份.sh

pgpool_remote_start 脚本。

谢谢。

0 投票
1 回答
632 浏览

java - Java Hibernate Query中没有负载平衡注释

我们在 Java 项目中使用 pgPool 在 Postgres 数据库中进行负载平衡。

pgPool 将只读查询发送到从服务器并将查询写入主服务器。那没问题。

但是在我们的应用程序中有非常特殊的情况,当我们只需要在主服务器中执行查询时。

pgPool 提供以下机制:

上面的查询将始终在主服务器中执行。

我进行了很多搜索,但是虽然可以在手动查询中设置注释(Query 类中有一个 setComment()),但我找不到使用 Hibernate 存储库和从方法名称创建的查询的方法。

例子:

如何在此查询中添加评论?

0 投票
2 回答
6644 浏览

postgresql - 如何让 pcp 自动将节点附加到 postgres pgpool?

我在 centos 6.8 上使用 postgres 9.4.9、pgpool 3.5.4。

我很难让 pgpool 自动检测节点何时启动(它通常检测第一个节点但很少检测到辅助节点)但是如果我使用 pcp_attach_node 告诉它哪些节点启动了,那么一切都是笨拙的。

所以我想在我能够正确解决问题之前,我会编写一个小脚本来检查节点的状态并根据需要附加它们,但是我在密码提示方面遇到了问题。根据文档,我应该能够发出类似的命令

但这只是抱怨

pcp_attach_node:警告:额外的命令行参数“localhost”被忽略 pcp_attach_node:警告:额外的命令行参数“9898”被忽略 pcp_attach_node:警告:额外的命令行参数“pgpool”被忽略 pcp_attach_node:警告:额外的命令行参数“mypass " 忽略 pcp_attach_node: 警告: 额外的命令行参数 "1" 被忽略

只有当我使用像这样的参数时它才会起作用

并且密码没有参数,我必须在提示符下手动输入。

除了使用 Expect 之外,还有什么关于排序的建议吗?

0 投票
1 回答
907 浏览

node.js - node-postgres,用 pg-pool 表达,将数据发送到 Angular 前端

我正在使用pg-pool. 但是,我在将查询结果发送到前端时遇到了麻烦。我以为我可以res.send像往常一样使用,但它不被识别(我也尝试过return)。这是我的功能:

0 投票
1 回答
609 浏览

postgresql - node-postgres LEFT JOIN 查询

我正在尝试使用以下函数在 node-postgres (pg) 中执行连接查询,但出现语法错误。问题是连接查询,其他一切正常。在 pg 中格式化连接查询的正确方法是什么?

0 投票
2 回答
3337 浏览

postgresql - 无法将 PGPool 与 Amazon RDS Postgres 一起使用

我有一个具有多可用区的 Postgres 9.4 RDS 实例,并且有一个从属只读副本。

到目前为止,负载平衡是在我的应用程序的业务层进行的,但效率低下,我希望使用 PGPool,因此应用程序与单个 Postgres 连接进行交互。

事实证明,使用 PGPool 一直很痛苦。如果我将其设置为负载均衡器,简单的 SELECT 查询会引发如下错误:

如果我将其设置为使用流复制以主/从模式运行(如Postgres 邮件列表中所建议的那样),我会得到:

是的,好吧,pg_hba.conf 如果在 RDS 中失手,所以我无法更改它。

有没有人让 PGPool 在 RDS 中工作?是否有其他工具可以充当中间件来利用 RDS 中的读取副本?

0 投票
1 回答
620 浏览

postgresql - pgpool-II 可以平衡 PostgreSQL 服务器与多个实例吗?

我已经在主从模式下配置了两个 PostgreSQL 9.5 实例,并且可以成功配置 PgPool-II 以实现它们之间的负载平衡,并且故障转移工作正常(花了我 2 周的时间和很多错误,但它终于奏效了)。

我现在的问题是:假设一个 PostgreSQL 服务器有多个实例,而第二个服务器也有多个实例,每个实例在两个服务器之间以多个端口配对,每个端口用于每个实例(当然),并且每个实例都配置用于主从复制。是否可以只安装一个 PgPool 为所有这些实例配置负载平衡和故障转移,还是应该为每个 PostgreSQL 实例配置一个 PgPool?

提前致谢,

伊戈尔·费利克斯

0 投票
0 回答
505 浏览

java - 休眠会话;连接到哪个服务器?使用带有故障转移和 pgpool-II 的 PostgreSQL JDBC 驱动程序

PostgreSQL 文档显示您可以在 JDBC 字符串中传递多个主机以用于 HA 设置(页面底部):https ://jdbc.postgresql.org/documentation/head/connect.html

我的设置有 3 个节点,每个节点都运行 PostgreSQL 服务器。我已经使用 pgpool-II 实现了 HA。有一个主节点和两个备用节点。

当我使用以下休眠属性时,效果很好:

我的应用程序连接到集群,如果说 10.200.0.50 关闭,它将使用其他地址之一。

但我的问题是,使用后:

如何从我的会话打开连接的 JDBC 连接字符串中检查哪个主机?

编码:

只是给了我所有三个节点的原始 JDBC 字符串。

0 投票
1 回答
1193 浏览

postgresql - pgpool 3.5.4 和 JDBC 的问题

我有一个启用了 memcache 的 pgpool 3.5.4,我用它来连接到 Redshift。

我写了两个简单的程序,一个用Java(JDBC postgresql-9.4.1212.jre6.jar)和另一个用Python(使用psycopg2 postgres包)连接到pgpool,并执行一个简单的查询(例如:select * from customer限制 10;) 我注意到奇怪和不同的行为。我还使用命令行工具 psql 运行了查询。

1) 使用 JDBC 和 pgpool 并启用缓存我得到一个错误

2016-11-15 10:56:27:pid 31043:致命:后端抛出错误消息

2016-11-15 10:56:27: pid 31043: DETAIL: 由于后端错误退出当前会话

2016-11-15 10:56:27:pid 31043:提示:后端错误:“门户”pgpool31043“不存在”

2)在禁用缓存的情况下将 JDBC 与 pgpool 一起使用它可以工作

3)使用 psycopg2 或 psql 命令行与 pgpool 启用或禁用缓存它可以工作

有人可以帮我理解为什么只有 JDBC 不起作用吗?