网站首页 > 文章精选 正文
PostgreSQL轻量级连接池 PgBouncer
1.PgBouncer 简介
pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL/Greenplum 服务器来连接,然后pgbouncer 会处理与服务器连接,或者是重用已存在的连接。pgbouncer 的目标是降低因为新建到 PostgreSQL/Greenplum 的连接而导致的性能损失。
pgbouncer目前支持三种连接池模型。分别是session, transaction和statment三个级别:
- session. 会话级链接。只有与当客户端的会话结束时,pgbouncer才会收回已分配的链接
- transaction 事务级连接。当事务完成后,pgbouncer会回收已分配的链接。也就是说客户端只是在事务中才能独占此链接,非事务的对数据库的请求是没有独享的链接的。
- statement 语句级链接。任何对数据库的请求完成后,pgbouncer都会回收链接。此种模式下,客户端不能使用事务,否则会造成数据的不一致。
2.安装
在 Debian 系统上安装直接使用 apt-get 就可以安装,命令如下:
apt-get install pgbouncer
安装完成后,可以通过 dpkg 命令列出安装的文件及位置:
dpkg -L pgbouncer
/.
/etc
/etc/default
/etc/default/pgbouncer
/etc/init.d
/etc/init.d/pgbouncer
/etc/pgbouncer
/etc/pgbouncer/pgbouncer.ini
/etc/pgbouncer/userlist.txt
/usr
/usr/sbin
/usr/sbin/pgbouncer
/usr/share
/usr/share/doc
/usr/share/doc/pgbouncer
/usr/share/doc/pgbouncer/NEWS.Debian.gz
/usr/share/doc/pgbouncer/NEWS.rst.gz
/usr/share/doc/pgbouncer/README.Debian
/usr/share/doc/pgbouncer/README.rst.gz
/usr/share/doc/pgbouncer/changelog.Debian.gz
/usr/share/doc/pgbouncer/copyright
/usr/share/doc/pgbouncer/examples
/usr/share/doc/pgbouncer/examples/pgbouncer.ini.gz
/usr/share/doc/pgbouncer/examples/userlist.txt
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/pgbouncer.1.gz
/usr/share/man/man5
/usr/share/man/man5/pgbouncer.5.gz
/usr/share/pgbouncer
/usr/share/pgbouncer/mkauth.py
在上面的文件中
可执行程序 | /usr/sbin/pgbouncer |
配置文件 | /etc/pgbouncer/pgbouncer.ini |
用户文件 | /etc/pgbouncer/userlist.txt |
服务启动 | /etc/init.d/pgbouncer |
3.配置
在配置文件
/etc/pgbouncer/pgbouncer.ini 中
3.1 数据库连接
[databases]
PgBouncer数据库名 = host=主机地址 port=端口号 user=数据库用户 password=*** dbname=数据库名
例如:
bcdindb = host=172.17.40.80 port=5432 user=postgres password=*** dbname=dindb
3.2 pgbouncer
[pgbouncer]
logfile = /u01/logs/pgbouncer.log
pidfile = /u01/logs/pgbouncer.pid
listen_addr = *
listen_port = 7432
auth_type = plain
auth_file = /etc/pgbouncer/userlist.txt
admin_users = admin,pgb
pool_mode = session
ignore_startup_parameters = extra_float_digits
server_check_query = select 1
max_client_conn = 10000
default_pool_size = 20
3.3用户信息
用户信息需要配置
/etc/pgbouncer/userlist.txt 文件,文件内容:
"admin" "123456"
"pgb" "123456"
4.启动 PgBounce
执行如下命令启动:
su postgres -c "/usr/sbin/pgbouncer -d /etc/pgbouncer/pgbouncer.ini"
5.尝试连接
连接的用户:admin,pgb任意一个
密码:见userlist.txt
连接的数据库:PgBouncer数据库名
猜你喜欢
- 2025-05-21 Zabbix7 keepalived VIP高可用部署 对接 OceanBase高可用集群
- 2025-05-21 GORM 完全指南:从入门到精通,轻松玩转 MySQL 数据库
- 2025-05-21 PostgreSQL 技术内幕(五)Greenplum-Interconnect模块
- 2025-05-21 Windows深度解析: WSL 1 与 WSL 2 的核心差异及选择指南
- 2025-05-21 PostgreSQL技术大讲堂 - 第44讲:pg流复制部署
- 2025-05-21 小白入门必知必会-PostgreSQL-15.2源码编译安装
- 2025-05-21 什么是网络端口?或许工作10年的人也很难100%理解
- 2025-05-21 运维日记|postgresql-利剑出鞘-psql出手,天下我有
- 2025-05-21 Linux 防火墙怎么开?3 分钟学会放行 80 端口,再也不怕远程连接被拒
- 2025-05-21 Docker安装与管理postgresql
- 05-22离线在docker镜像方式部署ragflow0.17.2
- 05-22【Docker 新手入门指南】第七章:镜像使用
- 05-22使用Docker制作OpenJDK镜像
- 05-22使用Dockerfile build镜像
- 05-22一文详解Docker轻量级虚拟化,镜像和容器
- 05-22三 docker 镜像命令
- 05-22Docker-使用Dockerfile 定制镜像
- 05-22Linux日常小技巧Docker打包
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)