pgbouncer_fdw
用SQL查询pgbouncer统计信息,并执行pgbouncer命令
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgbouncer_fdw | 1.4.0 | FDW | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8650 | pgbouncer_fdw | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | dblink dblink postgres_fdw pg_stat_monitor pg_stat_statements wrappers multicorn odbc_fdw jdbc_fdw |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.4.0 | 1817161514 | pgbouncer_fdw | dblink |
| RPM | PGDG | 1.4.0 | 1817161514 | pgbouncer_fdw_$v | - |
安装
您可以直接安装 pgbouncer_fdw 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pgbouncer_fdw; # 当前活跃 PG 版本安装
pig ext install -y pgbouncer_fdw -v 18 # PG 18
pig ext install -y pgbouncer_fdw -v 17 # PG 17
pig ext install -y pgbouncer_fdw -v 16 # PG 16
pig ext install -y pgbouncer_fdw -v 15 # PG 15
pig ext install -y pgbouncer_fdw -v 14 # PG 14
dnf install -y pgbouncer_fdw_18 # PG 18
dnf install -y pgbouncer_fdw_17 # PG 17
dnf install -y pgbouncer_fdw_16 # PG 16
dnf install -y pgbouncer_fdw_15 # PG 15
dnf install -y pgbouncer_fdw_14 # PG 14
创建扩展:
CREATE EXTENSION pgbouncer_fdw CASCADE; -- 依赖: dblink
用法
pgbouncer_fdw: 通过普通 SQL 视图查询 PgBouncer 统计信息并通过 SQL 函数运行 PgBouncer 命令的扩展
创建服务器
CREATE EXTENSION pgbouncer_fdw;
CREATE SERVER pgbouncer FOREIGN DATA WRAPPER dblink_fdw
OPTIONS (host 'localhost', port '6432', dbname 'pgbouncer');
对于多个 PgBouncer 实例:
CREATE SERVER pgbouncer1 FOREIGN DATA WRAPPER dblink_fdw
OPTIONS (host '192.168.1.10', port '6432', dbname 'pgbouncer');
CREATE SERVER pgbouncer2 FOREIGN DATA WRAPPER dblink_fdw
OPTIONS (host '192.168.1.11', port '6432', dbname 'pgbouncer');
INSERT INTO pgbouncer_fdw_targets (target_host) VALUES ('pgbouncer1'), ('pgbouncer2');
UPDATE pgbouncer_fdw_targets SET active = false WHERE target_host = 'pgbouncer';
创建用户映射
CREATE USER MAPPING FOR PUBLIC SERVER pgbouncer
OPTIONS (user 'ccp_monitoring', password 'mypassword');
可用视图
| 视图 | 描述 |
|---|---|
pgbouncer_clients | 客户端连接详情 |
pgbouncer_pools | 连接池统计 |
pgbouncer_servers | 后端服务器状态 |
pgbouncer_stats | 统计摘要 |
pgbouncer_databases | 数据库定义 |
pgbouncer_config | 配置参数 |
pgbouncer_lists | 内部列表 |
pgbouncer_dns_hosts | DNS 主机缓存 |
pgbouncer_dns_zones | DNS 区域缓存 |
pgbouncer_sockets | 套接字信息 |
pgbouncer_users | 用户配置 |
SELECT * FROM pgbouncer_pools;
SELECT * FROM pgbouncer_stats;
SELECT database, cl_active, cl_waiting, sv_active FROM pgbouncer_pools;
监控多个实例时,每行包含一个 pgbouncer_target_host 列标识来源。
命令函数
管理函数(需要显式 GRANT EXECUTE):
SELECT pgbouncer_command_reload(); -- 重载配置
SELECT pgbouncer_command_pause('mydb'); -- 暂停数据库
SELECT pgbouncer_command_resume('mydb'); -- 恢复数据库
SELECT pgbouncer_command_kill('mydb'); -- 终止连接
SELECT pgbouncer_command_disable('mydb'); -- 禁用数据库
SELECT pgbouncer_command_enable('mydb'); -- 启用数据库
SELECT pgbouncer_command_reconnect('mydb'); -- 重新连接后端
SELECT pgbouncer_command_set('key', 'value'); -- 设置参数
SELECT pgbouncer_command_shutdown(); -- 关闭 PgBouncer
SELECT pgbouncer_command_suspend(); -- 暂停操作
SELECT pgbouncer_command_wait_close('mydb'); -- 等待连接关闭
权限
GRANT USAGE ON FOREIGN SERVER pgbouncer TO monitoring_user;
GRANT SELECT ON pgbouncer_pools TO monitoring_user;
GRANT SELECT ON pgbouncer_stats TO monitoring_user;
GRANT EXECUTE ON FUNCTION pgbouncer_command_reload() TO admin_user;