当前位置: 首页 > 工具软件 > pgbouncer > 使用案例 >

【安装配置PGBouncer连接池】

司寇瑾瑜
2023-12-01

PgBouncer可以在数据库和前端应用间建立连接,由PgBouncer去处理和后端数据库的连接关系。
对客户端的连接进行限制,预防过多或者恶意的连接请求。
主要工作还是每一个数据节点对数据的存取,pgbouncer只是提供给客户端数据节点的分配和链接以及限制客户端连接的数量。整体上实现了对数据的负载均衡。能够缓存和PostgreSQL的连接,当有连接请求进来的时候,直接分配空闲进程,而不需要PostgreSQL fork出新进程来建立连接,以节省创建新进程,创建连接的资源消耗。
能够有效提高连接的利用率,避免过多的无效连接,导致数据库消耗资源过大,CPU占用过高。

1.安装配置过程

–解压pgbouncer包

su - pg10
cd resource/
tar -zxf pgbouncer-1.14.0.tar.gz

–创建pgbouncer目录

mkdir ~/pgbouncer

–装libevent-devel

su - root
yum install -y libevent-devel
(或者su - root
rpm -ivh  libevent-devel-2.0.21-4.el7.x86_64.rpm)

–编译安装pgbouncer

su - pg10
cd resource/pgbouncer-1.14.0/
./configure --prefix=/home/pg10/pgbouncer

–编译

make -j4 

–编译安装

make install -j4

–切换到安装目录

cd ~/pgbouncer/

–编辑pgbouncer.ini文件

egrep  -v '^\;| ^$' /home/pg10/pgbouncer/share/doc/pgbouncer/pgbouncer.ini > pgbouncer.ini

vi pgbouncer.ini

[databases]
appdb = host=主机ip dbname=appdb port=5666
[pgbouncer]
logfile = /home/pg10/pgbouncer/pgbouncer.log
pidfile = /home/pg10/pgbouncer/pgbouncer.pid
listen_addr = *
listen_port = 5766
auth_type = trust
auth_file = /home/pg10/pgbouncer/userlist.txt
cd /home/pg10/pgbouncer/
cp share/doc/pgbouncer/userlist.txt .
vi userlist.txt

–清空,并添加

"appuser" "1qaz@WSX"

–启动pgbouncer

su  - pg10
cd 
vi .bashrc
将PATH变成
export PATH=${PGHOME}/bin:/home/pg10/pgbouncer/bin:${PATH}

–使环境变量生效

. .bashrc
pgbouncer --help
pgbouncer -d -v /home/pg10/pgbouncer/pgbouncer.ini

vi $PGDATA/pg_hba.conf

加一行

host    appdb    appuser     192.168.2.0/24      trust

2.验证

pg_ctl reload 
psql -U appuser -d appdb -p 5766 

连接失败的话------

su - root
ps -ef | grep pgbouncer
kill -9 21429
pgbouncer -d -v /home/pg10/pgbouncer/pgbouncer.ini

–测试连接成功

psql -U appuser -d appdb -p 5766 
连接成功
 类似资料: