PGPool
PGPool是实现PG高可用的利器,通过看门狗监听数据库服务,在数据库主节点故障时实现服务自动切换。
本人数据库集群为PGPool+流复制架构,用户通过客户端连接PGPool中间件,由PGPool将请求分发到具体的PG数据库。
凡事有利也有弊,PGPool提供强大功能的同时,也带来一些运维的弊端
使用限制
- 通过PGPool连接时,从pg_stat_activity视图中看不到客户端的ip地址
- 通过PGPool连接时,如果执行pg_terminate_backend()方法中断会话,PG数据库会返回与数据库关闭一样的代码,导致PGPool认为PG数据库关闭,从而触发故障转移,而实际上该数据库节点使用正常。
3.经过测试,即使不通过PGPool,直接在数据库上执行pg_terminate_backend()方法杀掉会话,无论是使用哪个用户执行,都会导致故障转移