概述
pgbouncer是PostgreSQL的一个轻量级连接池,可以给客户端提供一个统一的视图。
pgbouncer的作用:
a)pgbouncer可以在后端数据库和前端应用间简历连接的桥梁,由pgbouncer去处理和后端的连接关系。
b)对客户端的连接进行限制,防止过多的恶意连接。
pgbouncer的特点:
a)内存消耗低。(默认2k/连接)
b)可以把不同的数据库连接到一个机器上,而对客户端保持透明。
c)支持在线的重行配置而无需重启。
需求
postgresql-xl在架构上,coordiantor节点具有连接池作用,但是在多个coordiantor节点的时候,需要配置一个
管理多个coordinator节点的连接池。考虑到只需要要简单的连接池功能,所以选择pgbouncer这种轻量级的连接池
相对比较合适。
背景
服务器配置
10.0.1.13 gtm
10.0.1.14 dbnode01
10.0.1.15 dbnode02
逻辑节点配置
gtm gtm节点
dbnode01 1个coordinator节点,2个datanode节点
dbnode02 1个coordinator节点,2个datanode节点
环境
CentOS7.1
postgresql-xl9.2
编译安装
依赖包安装
yum install –y libevent-devel
如果yum不行,直接下载libevent包,编译安装即可。
源码编译安装
下载源码包,目前最新版本为1.7
https://pgbouncer.github.io/downloads/files/1.7/pgbouncer-1.7.tar.gz
解压
tar xvf pgbouncer-1.7.tar.gz
./configure
make & make install
配置环境变量
vim .bashrc
增加pgbouncer目录
export PATH=/usr/local/pgbouncer/bin:$PATH
source .bashrc
配置
pgbouncer.ini
[database]
postgres = host=10.0.1.14 port=10010 user=postgres dbname=postgres
postgres = host=10.0.1.15 port=10020 user=postgres dbname=postgres
[pgbouncer]logfile = /home/postgres/pgbouncer/pgbouncer.log
pidfile = /home/postgres/pgbouncer/pgbouncer.pid
listen_addr = 127.0.0.1
listen_port = 6432
auth_file = /home/postgres/pgbouncer/userlist.txt
userlist.txt
用户密码配置文件,测试使用明文,可以使用md5加密
增加:
“postgres” ““
因为本身postgresql的用户postgres没有使用密码,所以可以直接用" ",在用户名和密码中间需要使用一个空格。
测试
连接测试
psql -h 127.0.0.1 -p 6432 -U postgres postgres
创建表
create table t1(f1 int);
\dt
insert记录
insert into t1 values(1);
insert into t1 values(22);
查看insert数据
select * from t1;
数据传输情况
7.
转载于:https://my.oschina.net/u/2604075/blog/609237