安装配置PGBouncer连接池

Posted PostgreSQLChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装配置PGBouncer连接池相关的知识,希望对你有一定的参考价值。

作者:阎书利

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 
连接成功

以上是关于安装配置PGBouncer连接池的主要内容,如果未能解决你的问题,请参考以下文章

greenplum 连接池pgbouncer的使用

使用PgBouncer连接池

linux ---pgbouncer的安装和配置

greenplum的升级与连接池pgbouncer

设置 GUC 参数或使用 PGOPTIONS 环境变量与 PgBouncer

PostgreSQL 数据库HAProxy和PgBouncer配置高可用架构