Pgbouncer 用户手册
[编辑] 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/事务连接池
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
-v
-V
-h
[编辑] 管理员终端通过连接到标准的 listen_addr/listen_port 并且声明 pgbouncer 为连接数据库,那么可以使用管理控制台。 $ psql -h 127.0.0.1 -p 6543 pgbouncer 只有在配置参数 admin_users 或者 stats_users 才允许连接到控制台。 另外,如果连接通过 UNIX socket,并且客户端和正在运行的进程有着一样的 UNIX 用户 uid 的话,允许通过 pgbouncer 用户无密码登录。 [编辑] SHOW 命令SHOW 命令输出一些数据行,所包含的字段在下面描述。 [编辑] SHOW STATS;显示统计。 database
total_requests
total_received
total_sent
total_query_time
avg_req
avg_recv
avg_sent
avg_query
[编辑] SHOW SERVERS;type
user
database
state
addr
port
local_addr
local_port
connect_time
request_time
ptr
link
[编辑] SHOW CLIENTS;type
user
database
state
addr
port
local_addr
local_port
connect_time
request_time
ptr
link
[编辑] SHOW POOLS;为每一对(数据库,用户)都会保留一条新的连接池记录。 database
user
cl_active
cl_waiting
sv_active
sv_idle
sv_used
sv_tested
sv_login
maxwait
[编辑] SHOW LISTS;显示下列内部信息,分字段显示(不是按行显示): databases
users
pools
free_clients
used_clients
login_clients
free_servers
used_servers
[编辑] SHOW USERS;每行显示一个用户,字段明是 name。 [编辑] SHOW DATABASES;name
host
port
database
force_user
pool_size
[编辑] SHOW FDS;显示正在使用的 fd 列表。如果连接的用户的用户名是 "pgbouncer",那么通过 unix socket 连接,并且和运行的进程有同样的 UID,实际的 fd 列表是通过这个连接传递的。这个机制用于做在线重启。 fd
task
user
database
addr
port
cancel
link
[编辑] SHOW CONFIG;显示当前配置设置,一个配置一行,字段如下: key
value
changeable
[编辑] 进程控制命令[编辑] PAUSE;PgBouncer 尝试从所有服务器断开,首先会等待所有查询结束。这个命令在所有查询完成之前不会返回。 [编辑] SUSPEND;所有 socket 的缓冲区都冲刷出去,然后 PgBouncer 停止在上面的监听。这条命令在所有 socket 冲刷完毕之前不会返回。 [编辑] RESUME;从前面的 PAUSE 或者 SUSPEND 命令上头重新开始工作。 [编辑] SHUTDOWN;PgBouncer 进程将会退出。 [编辑] RELOAD;PgBouncer 进程将会重载它的配置文件然后更新可修改的设置。 [编辑] SIGNALSSIGHUP
SIGINT
SIGTERM
[编辑] LIBEVENT 设置来自 libevent 文档: 我们可以关闭 epoll,kqueue,devpoll,poll 或者 select 的支持,方法是设置分别环境变量 EVENT_NOEPOLL,EVENT_NOKQUEUE,EVENT_NODEVPOLL,EVENT_NOPOLL 或者 EVENT_NOSELECT。 通过设置环境变量 EVENT_SHOW_METHOD,libevent 显示它使用的内核通知方法。 [编辑] 认证文件格式PgBouncer 需要它自己的用户数据库。用户从文本文件中装载,格式应该和 PostgreSQL 的 pg_auth/pg_pwd 文件一样。 "username1" "password" ... "username2" "md12342345234" ... 至少需要有两个字段,用双引号包围。首先是用户名,第二个是明文或者是 md5 散列后的口令。PgBouncer 忽略改行剩余的部分。 这样的文件格式允许指引 PgBouncer 直接到 PostgreSQL 数据目录的用户文件。 [编辑] SEE ALSOpgbouncer(5) - 配置设置描述。 Pgbouncer 介绍 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |