PG高可用集群搭建—基于Pgpool-II-4.5.2(一)------规划及安装
一、前言
Pgpool-II是一款工作在PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件。提供了以下功能:
- 连接池
Pgpool-II保存到PostgreSQL服务器的连接,并在具有相同属性(即用户名、数据库、协议版本)的新连接进入时重新使用它们。它减少了连接开销,并提高了系统的整体吞吐量。
- 复制
Pgpool-II可以管理多个PostgreSQL服务器。使用复制功能可在2个或更多物理磁盘上创建实时备份,以便在磁盘出现故障时无需停服即可继续服务。
- 负载均衡
如果数据库有多副本,则在任何服务器上执行SELECT查询都将返回相同的结果。Pgpool-II利用复制功能,通过在多个服务器之间分配SELECT查询来减少每台PostgreSQL服务器上的负载,从而提高系统的整体吞吐量。查询性能随PostgreSQL服务器数量的增加而成比例提高。负载均衡在有许多用户同时执行多个查询的情况下工作得最好。
- 限制过多的连接
与PostgreSQL的并发连接的最大数量是有限制的,连接过多后会被拒绝。但是,设置最大连接数会增加资源消耗并影响系统性能。Pgpool-II对最大连接数也有限制,但额外的连接将被排队,而不是立即返回错误。
- 看门狗
WatchDog可以协调多个Pgpool-II,创建一个健壮的集群系统,避免单点故障或脑裂。WatchDog可以对其他pgpool-II节点执行健康检查,以检测PgPoll-II的故障。如果主用Pgpool-II关闭,备用Pgpool-II可以升级为主用,并接管虚拟IP。
- 查询缓存
查询缓存允许保存SELECT语句及其结果。如果出现相同的查询,则Pgpool-II将从缓存中返回值。由于不涉及SQL解析或访问PostgreSQL,因此在内存缓存中使用非常快。另一方面,在某些情况下,它可能比正常路径慢,因为它增加了存储缓存数据的一些开销。
Pgpool-II使用PostgreSQL的后端和前端协议,并在后端和前端之间转发消息。因此,数据库应用程序(前端)认为Pgpool-II是实际的PostgreSQL服务器,而服务器(后端)将Pgpool-II视为其客户端之一。因为Pgpool-II对服务器和客户端都是透明的,所以现有的数据库应用程序几乎可以在不更改其源代码的情况下与Pgpool-II一起使用。
下面以最新的Pgpool-II 4.5.2版为例介绍搭建过程,PostgreSQL数据库采用最新的16.0,操作系统为Rocky Linux 9.4 (Blue Onyx)。构架图如下(图片转自Pgpool-II官网)
附Pgpool官方文档链接:pgpool-II 4.5.2 Documentation
| Pgpool工作架构图 |
二、规划
2.1 主机及IP规划
2.3 Pgpool-II版本及配置规划
三、 安装
wget -O pgpool-II-4.5.2.tar.gz https://www.pgpool.net/mediawiki/download.php?f=pgpool-II-4.5.2.tar.gztar zxvf pgpool-II-4.5.2.tar.gz cd pgpool-II-4.5.2dnf install libtoolautoreconf -fi
./configure --prefix=/usr/local/pgpool --with-openssl --with-pgsql=/usr/pgsql-16 # --with-pgsql是postgreSQL的安装根目录 make make install
# 如果后续要使用Pgpool-II的online recovery功能,则需要编译相关扩展 cd src/sql/pgpool-recovery
make make install$ psql template1 CREATE EXTENSION pgpool_recovery;调整 postgresql.conf, 将以下内容添加到 postgresql.conf 中。
评论
发表评论