Pgbouncer的安装与使用
由于 PostgreSQL 采用进程模式,大量连接对数据库性能会产生较大影响,在大量连接情况下,
一般会在数据库和应用程序之间配置 pgbouncer,pgbouncer 可以配置在数据库主机上,也可以配置在
单独一台服务器上,但是采用了 pgbouncer 后,在维护方面和以前会有些区别.
说白了就是一连接池。现在有好多模块,plproxy,pgpool什么的,都有这功能。pgbouncer与之相比,最大的好处是简单,小型。
如果不需要负载均衡什么的功能,用pgbouncer就足够了。
PgBouncer的特点
a.内存消耗低(默认为2k/连接),因为Bouncer不需要每次都接受完整的数据包
b.可以把不同的数据库连接到一个机器上,而对客户端保持透明
c.支持在线的重新配置而无须重启
1.下载pgbouncer的安装包
http://pgfoundry.org/frs/?group_id=1000258&release_id=1952
2.下载libevent包
http://monkey.org/~provos/libevent/
解压 tar -zxvf libevent-2.0.22-stable.tar.gz
编译 cd libevent-2.0.22-stable
./configure --prefix=/home/psql/libevent
安装 make
make install
解压 tar -zxvf pgbouncer-1.5.4.tar.gz
编译 cd pgbouncer-1.5.4
./configure --prefix=/home/psql/pgbouncer --with-libevent=/home/psql/libevent
安装 make
make install
安装完成之后查看pgbouncer解压目录pgbouncer-1.5.4下的config.log文件,最后显示
configure: exit 0 exit 0代表安装成功,1代表失败。
chown -R highgo:highgo pgbouncer/ 我这是用户highgo
chown -R highgo:highgo libevent/
pgbouncer-1.5.4目录下etc下的pgbouncer.ini
cp pgbouncer.ini /home/pgsql/pgbouncer
进入目录 home/pgsql/pgbouncer
执行 chown highgo:highgo pgbouncer.ini
配置文件详细参数配置见:pgbouncer配置文件详解.doc
操作方法与pgbouncer配置文件一样
pgbouncer-1.5.4目录下etc下的users.txt
cp users.txt /home/psql/pgbouncer
进入目录home/psql/pgbouncer
执行 chown highgo:highgo users.txt
用户配置为键值对
“highgo” “highgo1” 用户名highgo,密码highgo1
/home/pgsql/pgbouncer/bin/pgbouncer -d /home/pgsql/pgbouncer/pgbouncer.ini
如果报错:
error while loading shared libraries: libevent-2.0.so ........
安装两个包:
yum install libevent
yum install libevent-devel
安装完成再次执行启动命令,出现类似如下信息,则代表启动成功
LOG File descriptor limit: 1024 (H:4096), max_client_conn: 100, max fds possible: 130
进入目录:/home/psql/pgbouncer
查看 pgbouncer.log文件
psql -h 192.168.100.1 -p 5666 -U highgo -d highgo
-h的ip是部署pgbouncer服务器的IP
-p是配置文件中配置【pgbouncer】的port
-U是配置文件中配置【pgbouncer】的管理用户
-d 是配置文件中配置【database】的dbname
Show config; #查看相关配置
Show stats;
Show lists;#查看连接相关信息,如,数据库个数,空闲连接数等等
Show pools;#查看池中连接信息
Show databases;#查看相关数据库
Show clients; #查看连接数
pgbouncer=# reload
使用配置文件中admin用户登录pgbouncer,执行shutdown