安装
可以直接使用
- yum install pgbouncer
安装(rpm管理的是1.14版本)
或者在http://www.pgbouncer.org/downloads/ 下载最新的tat.gz包
解压出来进入目录,通过
- ./configure --prefix=/home/pgbouncer
- make & make install
安装(官网最新为1.16版本)
依赖问题自行解决,这里不赘述。
建议通过yum安装,简单快捷,不用处理依赖问题。
通过yum安装成功后,会自动生成pgbouncer账户,为了后面的执行 需要进入 /etc/passwd 修改sbin/nologin 为 /bin/bash
服务部署位置建议:
- 如果只有单应用访问,建议PgBouncer部署在应用服务器上,减少应用服务器和pgbouncer之间的开销
- 如果有多应用访问,建议PgBouncer部署在数据库侧,减少pgbouncer和数据库之间的开销
- 也可以部署成多实例模式,针对读和写进行分别部署pgbouncer,因为pgbouncer本身只是数据库连接池,不具备负载均衡,或高可用,IP漂移等特性,需要结合其他成熟产品进行组合使用
Quick-start
1、创建或编辑/etc/pgbouncer/pgbouncer.ini文件,典型内容如下:
[databases]``themis = host=``127.0``.``0.1` `port=``5432` `dbname=themis``[pgbouncer]``logfile =
/var/log/pgbouncer/pgbouncer.log``pidfile = /var/run/pgbouncer/pgbouncer.pid``listen_addr = *``listen_port = ``6688``auth_type =
trust``auth_file = /etc/pgbouncer/userlist.txt``admin_users = admin``stats_users = admin``pool_mode = session``max_client_conn =
``100``default_pool_size = ``20``server_reset_query = RESET ALL; SET SESSION AUTHORIZATION DEFAULT
tips:
- listen_addr:监听地址,表示哪些地址能访问这个pgbouncer服务,*表示所有
- auth_type:一般选择trust或md5,前者明文存储密码,后者md5加密密码
- auth_file:需要创建一个用户列表文件,只有在文件中的用户才允许访问连接池
- admin_users:pgbouncer的管理员账号,需要在userlist.txt中存在
- pool_mode:默认为会话池模式(Session pooling),还可以选择事务池(Transaction pooling)和语句池(Transaction pooling)
- max_client_conn:连接池最多允许多少连接
- default_pool_size:每一对数据库-用户允许多少连接
- server_reset_query:当一个连接被返回给连接池时,它必须被重置为刚创建的连接的状态。在把一个连接返回给连接池之前,PgBouncer通过发出一个查询来实现这种重置。PG使用DISCARD ALL命令,不过GreenPlum不支持这个命令,使用示例中的命令来达到这个目的
模式比较:
2、创建userlist.txt文件,需要与pgbouncer.ini里的auth_file路径相对应
如果auth_type = trust,则内容为
"user_name" "password"
如果auth_type = md5,则内容为
"user_name" "md5 + MD5(<password><username>)"
可以通过查询GP的pg_catalog.pg_shadow视图获得,导出即可
pgbouncer也提供了一个mkauth.py工具,可以直接生成userlist文件,这里不详细描述了。
3、启动
pgbouncer -d /etc/pgbouncer/pgbouncer.ini
4、停止
可以直接kill进程来停止pgbouncer
cat /var/run/pgbouncer/pgbouncer.pid | xargs kill -9
也可以登陆pgbouncer后台数据库,执行shutdown来关闭
5、登陆数据库
通过连接池连接目标数据库
psql -h 192.168.4.11 -p 6688 -U admin xxx
连接pgbouncer数据库
psql -p 6688 -U cyadmin pgbouncer
配置项详解
配置文件分为[databases] 和 [pgbouncer]两部分,现在我们来详细讲解一下里面的配置。
[databases]部分的参数配置,都是以键值对的形式出现的,例如dbname、host、port、user、password,这几个参数都比较好理解。还有几个额外的配置我们接着看一下:<