pgbouncer-admin
PgBouncer管理控制台命令
概要
psql -p port pgbouncer
描述
PgBouncer管理控制台可以通过psql操作。 通过连接到PgBouncer port和 虚拟数据库名pgbouncer来登陆控制台。
列在pgbouncer.ini配置文件中的配置参数admin_users 和stats_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
- CLIENTS
- CONFIG
- DATABASES
- DNS_HOSTS
- DNS_ZONES
- FDS
- POOLS
- SERVERS
- SOCKETS
- STATS
- STATS_TOTALS
- STATS_AVERAGES
- LISTS
- MEM
- USERS
- VERSION
ACTIVE_SOCKETS
列 | 描述 |
---|---|
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
列 | 描述 |
---|---|
type | C为客户端。 |
user | 客户端连接的用户。 |
database | 数据库名字。 |
state | 客户端连接状态,状态可以为active、 used、waiting或 idle。 |
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参数设置的列表。
列 | 描述 |
---|---|
key | 配置变量名 |
value | 配置值 |
changeable | yes或no。 显示变量在运行时是否可以改变。如果为no,则该变量只能在启动时改变。 |
DATABASES
列 | 描述 |
---|---|
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
列 | 描述 |
---|---|
hostname | 主机名 |
ttl | 下次查询间隔多少秒。 |
addrs | 逗号分隔的地址列表。 |
DNS_ZONES
列 | 描述 |
---|---|
zonename | 区域名字 |
serial | 当前DNS序列号 |
count | 属于该区域的主机名。 |
FDS
SHOW FDS是用于联机重启的内部命令,例如升级到新的PgBouncer版本时。 它显示正在使用的文件描述符列表以及附加其上的内部状态。这个命令阻塞内部事件循环, 因此在PGBouncer被使用的时候不应该使用它。
当连接的用户拥有用户名“pgbouncer”,通过一个Unix套接字连接,并具有与正在运行的 进程相同的UID时,实际的文件描述符将通过连接传递。
列 | 描述 |
---|---|
fd | 文件描述符的数值。 |
task | 任务为以下之一pooler、client或 server。 |
user | 使用文件描述符的连接的用户。 |
database | 使用文件描述符的连接的数据库。 |
addr | 使用文件描述符的连接的IP地址,如果使用Unix套接字,则为“unix”。 |
port | 使用文件描述符的连接使用的端口。 |
cancel | 该连接的取消键。 |
link | 相应的服务器/客户端的文件描述符。空闲时为NULL。 |
client_encoding | 数据库使用的字符集。 |
std_strings | 这将控制普通字符串(’…’)是否按照SQL标准中的规定按字面意思处理反斜线。 |
datestyle | 显示日期和时间值的格式。 |
timezone | 用于解释和显示时间戳的时区。 |
password | auth_user的密码。 |
LISTS
在两列中显示以下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
列 | 描述 |
---|---|
name | 缓存的名字。 |
size | 缓存中单个缓存槽的大小。 |
used | 缓存中在用的插槽数量。 |
free | 缓存中可用插槽的数量。 |
memtotal | 缓存使用的总字节数。 |
POOLS
为每对(数据库,用户)创建一个新的池项。
列 | 描述 |
---|---|
database | 数据库名字。 |
user | 用户名。 |
cl_active | 链接到服务器并且可以处理查询的客户端连接。 |
cl_waiting | 已发送查询但尚未获得服务器连接的客户端连接。 |
sv_active | 链接到客户端的服务器连接。 |
sv_idle | 还没有使用且可立即用于客户端查询的服务器连接。 |
sv_used | 空闲时间已经超过server_check_delay的服务器连接。 在它们被使用前,必须先运行server_check_query。 |
sv_tested | 当前正在运行server_reset_query或 server_check_query的服务器连接。 |
sv_login | 目前正在登陆的服务器连接。 |
maxwait | 队列中第一个(最老的)客户端等待了多长时间,以秒为单位。 如果这个开始增加, 那么当前的服务器池不能足够快地处理请求。 原因可能是服务器超载或pool_size设置太小。 |
maxwait_us | max_wait(微秒)。 |
pool_mode | 正在使用的池模式。 |
SERVERS
列 | 描述 |
---|---|
type | S,为服务器。 |
user | pgbouncer用来连接到服务器的用户ID。 |
database | 数据库名。 |
state | pgbouncer服务器连接的状态,可以是active、 used或idle。 |
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
显示统计数据。
列 | 描述 |
---|---|
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
列 | 描述 |
---|---|
name | 用户名。 |
pool_mode | 用户的覆盖pool_mode,如果将使用默认值,则为NULL。 |
VERSION
显示PgBouncer版本的信息
Note: 该参考文档基于PgBouncer 1.8.1文档。