安裝配置PGBouncer連線池

T1YSL發表於2021-09-11

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 
連線成功


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2791683/,如需轉載,請註明出處,否則將追究法律責任。

相關文章