问题标签 [pgbouncer]

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 回答
1569 浏览

database - 带有 TLS/SSL 客户端和服务器连接的 pgbouncer 1.7

使用从运行 Postgres 9.4.1 和 pgbouncer 1.6.1 的类似服务器借用的设置,我有多个用户通过端口 6543 上的 pgbouncer 连接到数据库。我还有第二台运行 PostgreSQL 9.4.5 的服务器,我已经验证了所有用户只能使用设置为 的 TLS/SSL 直接连接到数据库(在端口 5432 上)verify-full

但是,我需要创建一个结合这些配置的环境:所有用户通过 TLS/SSL 连接到数据库,并通过 pgbouncer 进行连接池。这意味着我需要在最近发布的(截至 2015 年 12 月 18 日)pgbouncer 1.7 中使用新的 TLS/SSL 功能,但除了新 TLS 参数的文档之外,我还没有找到任何可用的示例来演示新功能,也没有我自己通过 pgbouncer 在我的第二台服务器上使用 TLS/SSL 建立有效连接的任何成功。

我已经包含了来自我的第二台服务器的postgresql.conf, pg_hba.conf, &的相关摘录。pgbouncer.ini

postgresql.conf:

pg_hba.conf:

pgbouncer.ini:

pgbouncer 启动,但是,当我尝试以用户 'lalligood' 身份连接时,我收到以下错误:

pgbouncer.log 包含每次尝试的以下行:

如有必要,我可以提供更多信息。如果有人对我可能忽略的工作有任何建议/建议,我非常感谢您的帮助!

0 投票
2 回答
442 浏览

java - 如果查询需要很长时间而没有任何超时异常,则使用休眠执行的 Postgres 查询运行将被丢弃

我正在运行一个需要两个多小时的 postgres 查询。这个查询是在 java 程序中使用休眠执行的。大约 1.5 小时后,查询停止显示在 pg_admin 的服务器状态中。

由于查询从数据库上的活动查询列表中消失了,我期待成功或超时异常。但是,我什么都没有。(没有例外)并且我的线程陷入等待状态。我知道查询尚未完成,因为它应该在表中进行一些插入,而我在表中找不到预期的行。

我正在使用 pgbouncer 进行连接池,并且禁用了 query_timeout。如果是休眠超时,我应该有一个例外。DB机器和Client机器上的OS参数(机器运行java程序)

  • tcp_keepalive_time 为 7200(秒)
  • tcp_keepalive_intvl = 75
  • tcp_keepalive_probes = 9(探测数) 两台机器都运行 RHEL 操作系统。我无法解决这个问题。
0 投票
0 回答
1981 浏览

postgresql - 多个数据库 - 使用 pgbouncer 的公共连接池

我们在单个服务器中为每个租户设置了一个多租户数据库。是否可以使用 pgbouncer 为所有数据库维护一个公共池?我们在一台服务器中的号码数据库可以有数百个。虽然我可以拥有从应用程序到 pgbouncer 的大量连接,但我受到与 postgres 服务器的连接数量的限制。在这种情况下,最好的方法是什么?

0 投票
2 回答
2440 浏览

postgresql - SSH 到 AWS RDS Postgres 实例

我想在我的 postgres rds 中安装 pgbouncer,但我无法访问该实例,就像我们访问 ec2 实例一样。那么有没有一种方法可以让我通过 ssh 连接到机器(不是 psql,它工作正常)。

0 投票
1 回答
665 浏览

postgresql - 同一个 PostgreSQL 上的多个连接池

我的应用程序主要有两个部分,

  1. 用 Angular 编写的用户界面,使用 Django python 后端。
  2. 重映射减少类的过程。

两者都使用 postgres 进行查找,所以我怀疑我是否对两者都使用相同的连接池,当我的 map reduce 由于大量查找而运行时,由于没有可用的连接,我的其他应用程序将无法工作。有什么解决方法吗?(避免 postgres 本身在积压中)

PS:我正在使用 pgbouncer 进行池化

0 投票
1 回答
1027 浏览

database - 如何将 pgbouncer-1.4 与 PostgreSQL -9.0 数据库集成

在此处输入链接描述我是 pgbouncer 和 postgreSQL 数据库的新手。尝试将 pgbouncer 与 postgreSQL 数据库集成。成功安装 pgbouncer 后,启动 pgbouncer 时出现错误。

请在此处分享一些想法如何解决此问题。

在此先感谢萨蒂亚

0 投票
2 回答
1632 浏览

postgresql - 如何管理从 sidekiq 到 PostgreSQL 的连接池?

问题我有一个运行几百个sidekiq 后台进程的rails 应用程序。它们都连接到一个 PostgreSQL 数据库,该数据库对提供 250 个连接并不十分满意——它可以,但如果所有 sidekiq 进程不小心将查询发送到数据库,它就会崩溃。

选项 1我一直在考虑在数据库前面添加 pgBouncer,但是我目前不能使用它的事务模式,因为我高度依赖在search_path每个作业处理开始时设置 来确定哪个“国家”(PostgreSQL 模式)工作(公寓宝石)。在这种情况下,我将不得不使用基于会话的连接池模式。然而,据我所知,这将要求我在每次作业处理后断开连接,将连接释放回池中,这将是非常昂贵的性能,不是吗?我错过了什么吗?

选项 2使用基于应用程序层的连接池当然也是一个选项,但是我不确定如何使用 sidekiq 为 PostgreSQL 做到这一点?

选项3我没有想到的东西?

0 投票
1 回答
800 浏览

postgresql - 自动缩放受 RDS 连接限制

我有一些在 EC2 上运行的夜间作业,机器的数量由 SQS 中的消息数量决定。我的过程需要从 Postgres RDS 数据库中读取。现在这些都是我面临的问题。

  1. 由于连接不可用,无法扩展超过一定数量。
  2. 我尝试使用创建连接池pgbouncer,并尝试使用不同的设置,但它在结果集上丢失了很多数据。
0 投票
1 回答
1330 浏览

postgresql - pgbouncer kill 命令阻止后续连接

根据https://pgbouncer.github.io/usage.html运行KILL db;应该立即删除给定数据库上的所有客户端和服务器连接。 我试图在我的测试环境中停止所有与 postgres 的连接

它确实关闭了所有客户端和服务器连接,但我无法再连接到 postgres。

在 postgresql.log 我有以下消息

pgBouncer realod 不会改变这种情况,只有重启有帮助。

  1. 谁能解释发生了什么?
  2. 有没有办法通过 pgbouncer 修复 postgres-connection 而无需重新启动?
  3. 如果数据库连接锁定是 kill 命令的预期行为,我如何关闭所有连接而不阻塞新连接?

谢谢,米哈伊尔

0 投票
1 回答
1309 浏览

django - 函数内的 Postgres 咨询锁允许并发执行

我遇到了一个问题,我有一个函数需要根据某些情况进行序列化访问。这似乎是使用咨询锁的好案例。但是,在相当重的负载下,我发现没有发生序列化访问,并且我看到了对该函数的并发访问。

此功能的目的是为事件提供“库存控制”。意思是,它旨在限制给定活动的同时购买门票,以使该活动不会超卖。这些是应用程序/数据库中唯一使用的咨询锁。

我发现有时事件中的票数超过 eventTicketMax 值。由于咨询锁,这似乎不应该是可能的。当以低容量进行测试时(或在获取锁后手动引入延迟,例如 pg_sleep),事情会按预期工作。

这是我的环境设置:

  • Django 1.8.1 (django.db.backends.postgresql_psycopg2 w/CONN_MAX_AGE 300)
  • PGBouncer 1.7.2(会话模式)
  • Amazon RDS 上的 Postgres 9.3.10

我尝试调整的其他变量:

  • 将 CONN_MAX_AGE 设置为 0
  • 删除 pgbouncer 并直接连接到 DB

在我的测试中,我注意到,在某个活动超卖的情况下,门票是从不同的网络服务器购买的,所以我认为共享会话没有什么有趣的事情,但我不能肯定地说。