AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[pgbouncer](dba)

Martin Hope
Eranga Heshan
Asked: 2021-08-16 21:10:38 +0800 CST

“server_lifetime”和“server_idle_timeout”有什么区别?

  • 2

我正在尝试pgbouncer.ini在 Pgbouncer 中调整我的文件,并提出了server_lifetime我server_idle_timeout感觉相同的参数。

在官方配置文档中它说:

server_lifetime

pooler 将关闭连接时间超过此时间的未使用的服务器连接。将其设置为 0 意味着连接将只使用一次,然后关闭。[秒]

默认值:3600.0

server_idle_timeout

如果服务器连接空闲超过这么多秒,它将被丢弃。如果为 0,则禁用超时。[秒]

默认值:600.0

你能帮我简单理解一下区别吗?提前致谢!!!?

postgresql pgbouncer
  • 1 个回答
  • 866 Views
Martin Hope
Reinsbrain
Asked: 2021-08-11 09:09:06 +0800 CST

pgbouncer 是否允许多个池使用相同的数据库池名称但不同的用户?

  • 1

或者,换句话说,是否可以这样做:

[databases]
db1   = user=usr1 pool_size=10 application_name=app1 dbname=data1 ...
db1   = user=usr2 pool_size=20 application_name=app2 dbname=data1 ...

这样当usr1尝试连接到时db1,它们的 pool_size 为 10,而usr2尝试连接到同一个池时有 20 个?

postgresql pgbouncer
  • 1 个回答
  • 237 Views
Martin Hope
Radu Dumbrăveanu
Asked: 2020-03-12 05:25:16 +0800 CST

`query_wait_timeout` 错误的 PgBouncer 日志记录详细信息

  • 1

关于 PgBouncer 日志中的此类错误:

2020-03-10 03:46:01.730 EDT [25305] LOG C-0xa5cf00: testdb/[email protected]:49214 closing because: query_wait_timeout (age=120s)
2020-03-10 03:46:01.730 EDT [25305] WARNING C-0xa5cf00: testdb/[email protected]:49214 pooler error: query_wait_timeout

是否有可能查看(或记录)触发错误的查询?此错误的最常见原因是什么?停止的服务器,繁忙的服务器?

更新:来自 PostgreSQL 的日志文件在 2020-03-10 03:46:01 没有显示任何错误

pgbouncer
  • 1 个回答
  • 10301 Views
Martin Hope
rawmain
Asked: 2020-03-11 20:03:22 +0800 CST

PostgreSQL 服务器上无法接受 pgbouncer 6432 端口

  • 0

pgbouncer 服务器 (440a:90a0:302:4525:lda0:1:2:3)

弹跳器.ini

[databases]
app_db = host=pg_server port=5432 dbname=app_db

[pgbouncer]
listen_port = 6432
listen_addr = 127.0.0.1
auth_type = md5
auth_file = userlist.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = someuser

测试连接:

-bash-4.2$ psql -p 6432 -h pg_server -U postgres app_db
psql: could not connect to server: Connection refused
    Is the server running on host "pg_server" (340b:c210:402:4545:3a1a:1:2:3) and accepting
    TCP/IP connections on port 6432?

网络端口:

sudo lsof -i -P -n | grep LISTEN | grep 6432
pgbouncer 160039 postgres    7u  IPv4 39990293      0t0  TCP 127.0.0.1:6432 (LISTEN)

postgresql 服务器 (340b:c210:402:4545:3a1a:1:2:3)

Telnet pgbouncer 服务器与 6432 端口:

$ telnet -6 440a:90a0:302:4525:lda0:1:2:3 6432
Trying 440a:90a0:302:4525:lda0:1:2:3...
telnet: connect to address 440a:90a0:302:4525:lda0:1:2:3: Connection refused

尝试连接到 pgbouncer 服务器的 5432 端口(安装在 pgbouncer 服务器上的 postgresql 服务器):

telnet -6 440a:90a0:302:4525:lda0:1:2:3 5432
Trying 440a:90a0:302:4525:lda0:1:2:3...
Connected to 440a:90a0:302:4525:lda0:1:2:3.
Escape character is '^]'.

为什么不能在 postgresql 服务器上接受 6432 端口(340b:c210:402:4545:3a1a:1:2:3)?

postgresql pgbouncer
  • 1 个回答
  • 1419 Views
Martin Hope
rawmain
Asked: 2020-03-06 20:38:34 +0800 CST

为什么将日志文件设置为 /var/log/ 路径时无法启动 pgbouncer 进程?

  • 0

此 pgbouncer.ini 设置无法启动 pgbouncer:

[databases]
mydb = host=127.0.0.1 port=5432 dbname=mydb

[pgbouncer]
listen_port = 6432
listen_addr = 127.0.0.1
auth_type = md5
auth_file = userlist.txt
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
admin_users = someuser

没有生成 pid 文件,没有创建日志文件。没有进程正在运行(ps aux | grep pgbouncer)。

但如果设置logfile为pidfile:

logfile = pgbouncer.log
pidfile = pgbouncer.pid

pgbouncer 可以通过 run 启动pgbouncer -d pgbouncer.ini。它将在同一路径创建日志文件和 pid 文件pgbouncer.ini。

我正在使用普通用户这样做。

postgresql pgbouncer
  • 1 个回答
  • 825 Views
Martin Hope
rawmain
Asked: 2020-03-06 02:04:01 +0800 CST

为什么 Jira 无法使用 pgBouncer 连接数据库?

  • 0

弹跳器.ini

[databases]
jiradb = host=127.0.0.1 port=5432 dbname=jiradb

[pgbouncer]
listen_port = 6432
listen_addr = 127.0.0.1
auth_type = md5
auth_file = userlist.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = postgres

用户列表.txt

"postgres" "postgres1"

它可以通过以下方式连接psql:

psql -p 6432 -h 127.0.0.1 -U postgres jiradb
(Prompt password: postgres1)

但尝试从应用程序连接:

Jira dbconfig.xml:

<?xml version="1.0" encoding="UTF-8"?>

<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>postgres72</database-type>
  <schema-name>public</schema-name>
  <jdbc-datasource>
    <url>jdbc:postgresql://127.0.0.1:6432/jiradb</url>
    <driver-class>org.postgresql.Driver</driver-class>
    <username>postgres</username>
    <password>postgres1</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>20</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <validation-query>select 1</validation-query>
    <min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
    <time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
    <pool-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
    <pool-test-on-borrow>false</pool-test-on-borrow>
    <pool-test-while-idle>true</pool-test-while-idle>
  </jdbc-datasource>
</jira-database-config>

重启jira后,无法再次连接数据库:

Database: JIRA couldn't connect to your database

JIRA failed to establish a connection to your database.
This could be because:

    Your database isn't running
    The configuration of your dbconfig.xml file is incorrect (user, password, or database URL etc.)
    There is a network issue between JIRA and your database (e.g. firewall, database doesn't allow remote access etc.)

我正在一台服务器上对其进行测试。Jira 安装在jira用户处。pgBouncer 在postgres用户下运行。

postgresql pgbouncer
  • 1 个回答
  • 318 Views
Martin Hope
JPM
Asked: 2020-02-24 00:58:44 +0800 CST

不再处理连接或共享内存不足

  • 0

我有一个 golang 程序,它一次对多个线程中的数据进行计算,所有数据都从 Postgres 中提取。线程数取决于先前的结果。因此可能有数百个线程试图同时从 Postgres 中提取数据。

golang sql 库允许指定连接限制,以防止 postgres 耗尽共享内存或空闲连接。

如果我硬编码最大连接数,当连接其他东西时,我将用完连接。另一方面,如果我硬编码来自 golang 程序的允许连接数量太少,性能将受到不必要的限制。

什么是允许 go 程序使用尽可能多的连接而不会遇到限制的最佳方法。我想这个数字是一个变量,取决于当时连接到数据库的其他服务的数量。

我正在考虑在数据库和 golang 程序之间运行 PgBouncer,希望接受来自 golang 程序的所有连接,允许尽可能多的连接,但阻止其余连接,直到连接空闲。然而,我不确定 PgBouncer 是否会这样做,但接下来我将对其进行测试。

是否有另一种方法可以让连接池在没有真正连接可用时阻止连接?阻塞,而不是拒绝,因为拒绝连接意味着我必须在我的 golang 程序中添加重试逻辑。

postgresql pgbouncer
  • 1 个回答
  • 251 Views
Martin Hope
Tom
Asked: 2018-03-13 15:16:24 +0800 CST

改进 pgBouncer 配置

  • 2

就我而言,pgBouncer 的最佳配置是什么?

我只有 1 个数据库,1 个用户,并且max_connections在 postgresql.conf 中是1024.

我的 pgbouncer.config 的当前配置是:

max_client_conn = 1024
default_pool_size = 1024
min_pool_size = 32
;max_db_connections = 50
;max_user_connections = 50
postgresql pgbouncer
  • 1 个回答
  • 1483 Views
Martin Hope
Hassan Baig
Asked: 2016-12-13 01:51:34 +0800 CST

PgBouncer 日志管理

  • 1

我的 pgbouncer.log 无限增长。

如何在 Ubuntu 上启用文件名翻转或限制 pgbouncer 的日志文件大小?

postgresql pgbouncer
  • 1 个回答
  • 4965 Views
Martin Hope
Victor Ivanov
Asked: 2016-02-14 07:42:01 +0800 CST

使用 pgbouncer 限制连接数

  • 6

所以我有这个 pgbouncer 配置:

[databases]
my_db = host=10.10.10.10
my_db_with_conn_limit = host=10.10.10.10 dbname=my_db pool_size=55

max_client_conn = 300
default_pool_size = 65
reserve_pool_size = 5
reserve_pool_timeout = 1 

目标是限制来自特定应用程序的连接数——当数据库名称为 database_with_conn_limit 时,只允许 55 个连接。

基本上,这些应用程序是相同的,但我希望一个应用程序在连接方面受到限制,而另一个应用程序则尽可能多地获取。

  • 这是正确的设置吗?
  • 还是我也应该为 my_db 指定 pool_size,给它所有 Postgres 有负 55?
postgresql pgbouncer
  • 1 个回答
  • 1209 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve