From PgsqlWiki
pgbouncer(1)
名称
pgbouncer - PostgreSQL 的轻量的连接池。
摘要
pgbouncer [-d][-R][-v] <pgbouncer.ini> pgbouncer -V|-h
描述
pgbouncer 是一个 PostgreSQL 的连接池。任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后 pgbouncer 会处理与服务器连接,或者是重用已存在的连接。
pgbouncer 的目标是降低因为新建到 PostgreSQL 的连接而导致的性能损失。
为了协调事务语意和连接池的关系,pgbouncer 支持几种不同粗暴程度的连接轮转方式:
Session pooling/会话连接池
- 最礼貌的方法。在客户端连接的时候,将会给他分配一个服务器连接,并且在客户端连接的全程都分配给它。在客户端中断连接的时候,这个服务器连接将会放回连接池。
Transaction pooling/事务连接池
- 服务器连接只是在一个事务的过程里赋予客户端的。在 PgBouncer 注意到事务结束后,服务器就会放回连接池。
Statement pooling/语句连接池
- 最激进的模式。在每个查询结束之后,服务器的连接都会立即放回连接池。在这种模式下将不允许多语句的事务,因为它们的事务语意会被破坏。
pgbouncer 的管理接口包含一些新的 SHOW 命令,在与特定的虚拟数据库 pgbouncer 连接的时候可以用于观察系统状态。
快速入门
下面列出了基本的设置步骤。
1. 创建一个配置文件pgbouncer.ini。细节见Pgbouncer 管理员手册。最简单的:
[databases]
template1 = host=127.0.0.1 port=5432 dbname=template1
[pgbouncer]
listen_port = 6543
listen_addr = 127.0.0.1
auth_type = md5
auth_file = users.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = someuser
2. 创建 users.txt 文件:
"someuser" "same_password_as_in_server"
3. 启动 pgbouncer:
$ pgbouncer -d pgbouncer.ini
4. 让你的应用(或者 psql 客户端)连接到 pgbouncer,而不是直接连接到 PostgreSQL 服务器。
$ psql -h 127.0.0.1 -p 6543 -U someuser template1
5. 通过连接到特殊的管理数据库 pgbouncer 并且发出 show help; 命令开始来管理 pgbouncer:
$ psql -h 127.0.0.1 -p 6543 -U someuser pgbouncer
pgbouncer=# show help;
NOTICE: Console usage
DETAIL:
SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION]
SET key = arg
RELOAD
PAUSE
SUSPEND
RESUME
SHUTDOWN
6. 如果你修改了一些配置文件中可配置的配置参数,那么可以用下面命令重新装载:
pgbouncer=# RELOAD;
命令行参数
-d
- 在后台运行。没有这个参数的话进程会在前台执行。
-R
- 做一个在线的重启。这个意思是连接到正在运行的进程上,从里面装载打开的 socket 并且使用这些 socket 继续运行。
-v
- 增加输出信息的冗长度。
-V
- 显示版本。
-h
- 显示简短的帮助。
0
