pgbouncer-admin

    描述

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

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

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

    -p port

    PgBouncer端口号。

    命令行语法

    1. NOTICE: Console usage
    2. DETAIL:
    3. SHOW HELP|CONFIG|DATABASES|POOLS|CLIENTS|SERVERS|VERSION
    4. SHOW FDS|SOCKETS|ACTIVE_SOCKETS|LISTS|MEM
    5. SHOW STATS|STATS_TOTALS|STATS_AVERAGES
    6. SET key = arg
    7. RELOAD
    8. PAUSE [<db>]
    9. DISABLE <db>
    10. ENABLE <db>
    11. KILL <db>
    12. SUSPEND

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

    PAUSE [db]

    如果没有指定数据库,PgBouncer将尝试从所有服务器断开连接,首先等待所有查询完成。 在所有查询完成之前,该命令不会返回。这个命令是用来准备重启数据库的。

    如果指定了数据库名称,则只有该数据库被暂停。

    如果运行一个PAUSE db数据库命令, 然后运行PAUSE命令暂停所有数据库,则必须执行两个RESUME命令, 一个用于所有数据库,一个用于指定的数据库。

    SUSPEND

    所有套接字缓冲区都被刷新,PgBouncer停止监听数据。在所有缓冲区为空之前, 该命令不会返回。 在线重新启动PgBouncer时使用。

    RESUME [ db ]

    如果用PAUSE命令指定了数据库,则还必须使用RESUME命令指定数据库。

    使用PAUSE命令暂停所有数据库之后,不支持使用 RESUME db恢复单个数据库。

    DISABLE db

    拒绝数据库上的所有新客户端连接。

    ENABLE db

    在数据库上允许新的客户端连接。

    KILL db

    立即删除所有的客户端和服务器到指定数据库的连接。

    SHUTDOWN

    停止PgBouncer进程。从psql命令会话中退出,请输入\q。

    RELOAD

    TPgBouncer进程重新加载当前的配置文件并更新可更改的设置。

    SET key = value

    SHOW命令

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

    CLIENTS

    Table 2. 客户端
    描述
    typeC为客户端。
    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配置值
    changeableyesno。 显示变量在运行时是否可以改变。如果为no,则该变量只能在启动时改变。

    DATABASES

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

    DNS_HOSTS

    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用于解释和显示时间戳的时区。
    passwordauth_user的密码。

    LISTS

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

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

    MEM

    显示这些PgBouncer缓存的缓存内存信息:

    • user_cache
    • db_cache
    • pool_cache
    • server_cache
    • client_cache
    • iobuf_cache

    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_usmax_wait(微秒)。
    pool_mode正在使用的池模式。
    Table 11. 服务器
    描述
    typeS,为服务器。
    userpgbouncer用来连接到服务器的用户ID。
    database数据库名。
    statepgbouncer服务器连接的状态,可以是activeusedidle
    addrGreenplum或PostgreSQL服务器的IP地址。
    portGreenplum或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,则它是一个随机数。
    tlsTLS内容。

    STATS

    显示统计数据。

    Table 12. 统计
    描述
    database为每个数据库呈现的统计信息。
    total_xact_countPgBouncer池化的SQL事务总数。
    total_query_countPgBouncer池化的SQL查询总数。
    total_receivedpgbouncer收到的网络流量的总字节数。
    total_sentpgbouncer发送的网络流量的总字节数。
    total_xact_time一个事务中,通过PgBouncer连接到Greenplum数据库的微秒数,包括idle事务和执行查询。
    total_query_time当主动连接到数据库服务器时,pgbouncer花费的总微秒数。
    total_wait_time客户端等待服务器的时间(微秒)。
    avg_xact_countPgBouncer池化的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

    显示PgBouncer版本的信息

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

    pgbouncer.ini