pgbouncer-admin

pgbouncer-admin

PgBouncer管理控制台命令

概要

psql -p port pgbouncer

描述

PgBouncer管理控制台可以通过psql操作。 通过连接到PgBouncer port和 虚拟数据库名pgbouncer来登陆控制台。

列在pgbouncer.ini配置文件中的配置参数admin_usersstats_users的用户有访问PgBouncer管理控制台的权限。

可以从控制台控制PgBouncer和Greenplum数据库之间的连接。 也可以进行PgBouncer配置参数设置。

选项

-p port
PgBouncer端口号。

命令行语法

pgbouncer=# SHOW help;
NOTICE:  Console usage
DETAIL:  
    SHOW HELP|CONFIG|DATABASES|POOLS|CLIENTS|SERVERS|VERSION
    SHOW FDS|SOCKETS|ACTIVE_SOCKETS|LISTS|MEM
    SHOW DNS_HOSTS|DNS_ZONES
    SHOW STATS|STATS_TOTALS|STATS_AVERAGES
    SET key = arg
    RELOAD
    PAUSE [<db>]
    RESUME [<db>]
    DISABLE <db>
    ENABLE <db>
    KILL <db>
    SUSPEND
    SHUTDOWN

管理命令

以下PgBouncer管理命令控制pgbouncer进程。

PAUSE [db]
如果没有指定数据库,PgBouncer将尝试从所有服务器断开连接,首先等待所有查询完成。 在所有查询完成之前,该命令不会返回。这个命令是用来准备重启数据库的。
如果指定了数据库名称,则只有该数据库被暂停。
如果运行一个PAUSE db数据库命令, 然后运行PAUSE命令暂停所有数据库,则必须执行两个RESUME命令, 一个用于所有数据库,一个用于指定的数据库。
SUSPEND
所有套接字缓冲区都被刷新,PgBouncer停止监听数据。在所有缓冲区为空之前, 该命令不会返回。 在线重新启动PgBouncer时使用。
RESUME [ db ]
从之前的PAUSE或者SUSPEND命令恢复工作。
如果用PAUSE命令指定了数据库,则还必须使用RESUME命令指定数据库。
使用PAUSE命令暂停所有数据库之后,不支持使用 RESUME db恢复单个数据库。
DISABLE db
拒绝数据库上的所有新客户端连接。
ENABLE db
在数据库上允许新的客户端连接。
KILL db
立即删除所有的客户端和服务器到指定数据库的连接。
SHUTDOWN
停止PgBouncer进程。从psql命令会话中退出,请输入\q
RELOAD
TPgBouncer进程重新加载当前的配置文件并更新可更改的设置。
SET key = value
覆盖指定的配置设置。请参见SHOW CONFIG;命令。

SHOW命令

SHOW category命令显示不同类型的PgBouncer信息。 用户可以指定以下类别之一:

ACTIVE_SOCKETS

Table 1. 活动套接字信息
描述
type S为服务器,C为客户端。
user pgbouncer使用该用户名连接到服务器。
database 数据库名字。
state 服务器连接的状态,处于active状态、used 状态或idle状态。
addr PostgreSQL服务器的IP地址。
port PostgreSQL 服务器端口。
local_addr 本地机器上的连接起始地址。
local_port 本地机器上的连接起始端口。
connect_time 连接建立的时间。
request_time 最后一次发出请求的时间。
wait 等待时间。
wait_us 等待时间。(微秒)
ptr 该连接的内部对象的地址。用作唯一的ID。
link 服务器和客户端匹配的地址。
remote_pid 后台服务进程的定位符。
tls TLS文本。
recv_pos 在I/O缓冲区中的接收位置。
pkt_pos 在I/O 缓冲区中的解析位置。
pkt_remain 套接字上剩余的包数量。
send_pos 包中的发送位置。
send_remain 剩余要发送的包的总长度。
pkt_avail 剩余要解析的I/O缓冲区量。
send_avail 剩余要发送的I/O缓冲区量。

CLIENTS

Table 2. 客户端
描述
type C为客户端。
user 客户端连接的用户。
database 数据库名字。
state 客户端连接状态,状态可以为activeusedwaitingidle
addr 客户端的IP地址,或套接字连接的unix域。
port 客户端连接的端口。
local_addr 本地机器上的连接结束地址。
local_port 本地机器上的连接结束端口。
connect_time 连接时间的时间戳。
request_time 上次客户端请求的时间戳。
wait 等待时间。
wait_us 等待时间。(微秒)
ptr 该连接的内部对象的地址。用作唯一的ID。
link 客户端与服务器连接的地址。
remote_pid 进程ID,如果客户端连接到Unix套接字,并且操作系统支持获取它。
tls 客户端TLS内容。

CONFIG

当前PgBouncer参数设置的列表。

Table 3. 配置
描述
key 配置变量名
value 配置值
changeable yesno。 显示变量在运行时是否可以改变。如果为no,则该变量只能在启动时改变。

DATABASES

Table 4. 数据库
描述
name 配置好的数据库项的名字
host pgbouncer连接到的主机。
port pgbouncer连接到的端口
database pgbouncer连接到的实际数据库名称。
force_user 当用户是连接字符串的一部分时,pgbouncer和数据库服务器之间的连接被强制为给定的用户, 无论用什么客户端用户都是这样。
pool_size 服务器连接的最大数量。
reserve_pool 如果池达到pool_size,可以创建的额外连接数。
pool_mode 数据库的覆盖pool_mode,或者NULL使用默认值。
max_connections 此数据库的所有池的最大连接数。
current_connections 此数据库的所有池的连接总数。
paused 数据库的停顿/非停顿状态。
disabled 数据库的启用/停用状态。

DNS_HOSTS

Table 5. DNS主机
描述
hostname 主机名
ttl 下次查询间隔多少秒。
addrs 逗号分隔的地址列表。

DNS_ZONES

Table 6. 缓冲中的DNS区域
描述
zonename 区域名字
serial 当前DNS序列号
count 属于该区域的主机名。

FDS

SHOW FDS是用于联机重启的内部命令,例如升级到新的PgBouncer版本时。 它显示正在使用的文件描述符列表以及附加其上的内部状态。这个命令阻塞内部事件循环, 因此在PGBouncer被使用的时候不应该使用它。

当连接的用户拥有用户名“pgbouncer”,通过一个Unix套接字连接,并具有与正在运行的 进程相同的UID时,实际的文件描述符将通过连接传递。

Table 7. FDS
描述
fd 文件描述符的数值。
task 任务为以下之一poolerclientserver
user 使用文件描述符的连接的用户。
database 使用文件描述符的连接的数据库。
addr 使用文件描述符的连接的IP地址,如果使用Unix套接字,则为“unix”。
port 使用文件描述符的连接使用的端口。
cancel 该连接的取消键。
link 相应的服务器/客户端的文件描述符。空闲时为NULL。
client_encoding 数据库使用的字符集。
std_strings 这将控制普通字符串('...')是否按照SQL标准中的规定按字面意思处理反斜线。
datestyle 显示日期和时间值的格式。
timezone 用于解释和显示时间戳的时区。
password auth_user的密码。

LISTS

在两列中显示以下PgBouncer统计信息:项标签和值。

Table 8. PgBouncer项的计数
条目 描述
databases 数据库的计数。
users 用户的计数。
pools 池的计数。
free_clients 空闲客户端的计数。
used_clients 在用客户端的计数。
login_clients 处于login状态的客户端计数。
free_servers 空闲服务器的计数。
used_servers 在用服务器的计数。
dns_names DNS名字的计数。
dns_zones DNS区域的计数。
dns_queries DNS查询的计数。
dns_pending 正在进行的DNS查询的计数。

MEM

显示这些PgBouncer缓存的缓存内存信息:
  • user_cache
  • db_cache
  • pool_cache
  • server_cache
  • client_cache
  • iobuf_cache
Table 9. 内存缓存
描述
name 缓存的名字。
size 缓存中单个缓存槽的大小。
used 缓存中在用的插槽数量。
free 缓存中可用插槽的数量。
memtotal 缓存使用的总字节数。

POOLS

为每对(数据库,用户)创建一个新的池项。

Table 10. 池
描述
database 数据库名字。
user 用户名。
cl_active 链接到服务器并且可以处理查询的客户端连接。
cl_waiting 已发送查询但尚未获得服务器连接的客户端连接。
sv_active 链接到客户端的服务器连接。
sv_idle 还没有使用且可立即用于客户端查询的服务器连接。
sv_used 空闲时间已经超过server_check_delay的服务器连接。 在它们被使用前,必须先运行server_check_query
sv_tested 当前正在运行server_reset_queryserver_check_query的服务器连接。
sv_login 目前正在登陆的服务器连接。
maxwait 队列中第一个(最老的)客户端等待了多长时间,以秒为单位。 如果这个开始增加, 那么当前的服务器池不能足够快地处理请求。 原因可能是服务器超载或pool_size设置太小。
maxwait_us max_wait(微秒)。
pool_mode 正在使用的池模式。

SERVERS

Table 11. 服务器
描述
type S,为服务器。
user pgbouncer用来连接到服务器的用户ID。
database 数据库名。
state pgbouncer服务器连接的状态,可以是activeusedidle
addr Greenplum或PostgreSQL服务器的IP地址。
port Greenplum或PostgreSQL服务器的端口。
local_addr 本地机器上的连接开始地址。
local_port 本地机器上的连接开始端口。
connect_time 连接建立的时间。
request_time 最后一次请求发送的时间。
wait 等待时间。
wait_us 等待时间。(微秒)
ptr 此连接的内部对象的地址。用作唯一的ID。
link 与服务器配对的客户端连接的地址。
remote_pid 后端服务器进程的PID。如果连接是通过Unix套接字进行的, 并且操作系统支持获取进程ID信息,则它是OS的pid。否则,它将从 服务器发送的取消包中提取出来,在服务器是PostgreSQL的情况下应该是PID, 但是如果服务器是另一个PgBouncer,则它是一个随机数。
tls TLS内容。

STATS

显示统计数据。

Table 12. 统计
描述
database 为每个数据库呈现的统计信息。
total_xact_count PgBouncer池化的SQL事务总数。
total_query_count PgBouncer池化的SQL查询总数。
total_received pgbouncer收到的网络流量的总字节数。
total_sent pgbouncer发送的网络流量的总字节数。
total_xact_time 一个事务中,通过PgBouncer连接到Greenplum数据库的微秒数,包括idle事务和执行查询。
total_query_time 当主动连接到数据库服务器时,pgbouncer花费的总微秒数。
total_wait_time 客户端等待服务器的时间(微秒)。
avg_xact_count PgBouncer池化的SQL事务平均数量。
avg_query_count 最后一个统计周期的每秒平均查询数。
avg_recv 每秒平均收到(来自客户端)的字节数。
avg_sent 每秒平均发送(到客户端)的字节数。
avg_xact_time 平均事务时长(微秒)。
avg_query_time 平均查询时长(微秒)。
avg_wait_time 平均等待时长(微秒)。

STATS_AVERAGES

SHOW STATS的子集,展示已选择的统计信息的平均值。

STATS_TOTALS

SHOW STATS的子集,展示已选择的统计信息的总值。

USERS

Table 13. 用户
描述
name 用户名。
pool_mode 用户的覆盖pool_mode,如果将使用默认值,则为NULL。

VERSION

显示PgBouncer版本的信息

Note: 该参考文档基于PgBouncer 1.8.1文档。