网友通过本文主要向大家介绍了postgresql pgpool,pgpool,pgpool ii,pgpool安装,pgpool 视频等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
基于PGPool的1主2从PostgreSQL流复制HA的搭建
基于PGPool的1主2从PostgreSQL流复制HA的搭建
PostgreSQL的流复制为HA提供了很好的支持,但是部署HA集群还需要专门的HA组件, 比如通用的Pacemaker+Corosync。pgpool作为PostgreSQL的中间件,也提供HA功能。
pgpool可以监视后端PostgreSQL的健康并实施failover,由于应用的所有流量都经过pgpool,可以很容易对故障节点进行隔离, 但,同时必须为pgpool配置备机,防止pgpool本身成为单点。pgpool自身带watchdog组件通过quorum机制防止脑裂, 因此建议pgpool节点至少是3个,并且是奇数。在失去quorum后watchdog会自动摘除VIP,并阻塞客户端连接。
下面利用pgpool搭建3节点PostgreSQL流复制的HA集群。 集群的目标为强数据一致HA,实现思路如下:
- 基于PostgreSQL的1主2从同步复制
- Slave的复制连接字符串使用固定的pgsql_primary作为Master的主机名,在/etc/hosts中将Master的ip映射到pgsql_primary上,通过/etc/hosts的修改实现Slave对复制源(Master)的切换。 之所以采取这种方式是为了避免直接修改recovery.conf后重启postgres进程时会被pgpool检测到并设置postgres后端为down状态。
- pgpool分别部署在3个节点上,pgpool的Master和PostgreSQL的Primary最好不在同一个节点上,这样在PostgreSQL的Primary down时可以干净的隔离故障机器。
环境
软件
- CentOS 7.0
- PGPool 3.5
- PostgreSQL9.5
节点
- node1 192.168.0.211
- node2 192.168.0.212
- node3 192.168.0.213
- vip 192.168.0.220
配置
- PostgreSQL Port:5433
- 复制账号:replication/replication
- 管理账号:admin/admin
前提
- 3个节点建立ssh互信。