注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PgBouncer 连接池的使用  

2010-08-21 17:33:17|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

今天学习了下PgBouncer的使用, PgBouncer可以在后端数据库和前端应用间建立连接的桥梁,
由PgBouncer去处理和后端数据库的连接关系。 对客户端连接进行限制,预防过多或者恶意的连接请求。

PgBouncer的特点
内存消耗低(默认为2k/连接),因为Bouncer不需要每次都接受完整的数据包
可以把不同的数据库连接到一个机器上,而对客户端保持透明
支持在线的重新配置而无须重启
仅支持V3协议,因此后端版本须>=7.4

以下是Pgbouncer的安装过程


1 下载源文件 http://pgfoundry.org/frs/?group_id=1000258&release_id=1645

2 安装libevent组件
  http://monkey.org/~provos/libevent/下载,安装过程查看下帮助文档

3  安装PGBOUNCER
$./configure --prefix=/opt/pgbouncer --with-libevent=/usr/local/
$make
$make install


4 编写配置文件
$ mkdir -p  $PGDATA/pgbouncer_config
$ mkdir -p  $PGDATA/pgbouncer_config/run
cd $PGDATA/pgbouncer_config
4.1 配置文件 config.ini
[databases]
skytf = host=127.0.0.1 dbname=mydb port=1999  pool_size=500
postgres = host=127.0.0.1 dbname=postgres port=1999 pool_size=25

[pgbouncer]
pool_mode = session
listen_port = 1999
listen_addr = *
unix_socket_dir = /database/pgdata/pg_root/pgbouncer_config/run
auth_type = md5
auth_file = /database/pgdata/pg_root/pgbouncer_config/users.txt
logfile = /var/applog/pg_log/pgbouncer.log
#logfile = /dev/null
pidfile = /database/pgdata/pg_root/pgbouncer_config/pgbouncer.pid
max_client_conn = 6500
default_pool_size = 900
reserve_pool_timeout = 0
reserve_pool_size = 30
server_reset_query = DISCARD ALL;
admin_users = pgbouncer_admin
stats_users = pgbouncer_guest
ignore_startup_parameters = extra_float_digits,application_name,geqo
stats_period = 30

说明: 关于参数的解释在pgbouncer的源文件中有非常详细的文档,这里就不说明了。

 

4.2 用户信息 users.txt
"pgbouncer_admin" "pgbouncer_admin"
"skytf" "skytf"

5 启动pgbouncer
./opt/pgbouncer/bin/pgbouncer -d /database/pgdata/pg_root/pgbouncer_config/config.ini

6 测试通过pgbouncer连接是否正常
 psql -h 127.0.0.1 -p 1999 -d mydb -U skytf


7 以管理用户进入pgbouncer
psql -h 127.0.0.1 -p 1999 -U pgbouncer_admin -d pgbouncer

8 查看pgbouncer运行情况
pgbouncer=# show stats;
pgbouncer=# show lists;
pgbouncer=# show pools;
pgbouncer=# show databases;

9 参考目录结构
[postgres@pg1 pgbouncer_config]$ ll
总计 16K
-rw-rw-r-- 1 postgres postgres  734 08-19 13:47 config.ini
-rw-r--r-- 1 postgres postgres    5 08-19 14:01 pgbouncer.pid
drwxrwxr-x 2 postgres postgres 4.0K 08-19 14:01 run
-rw-rw-r-- 1 postgres postgres   52 08-19 14:09 users.txt

  评论这张
 
阅读(26852)| 评论(4)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016