文章目录
PostgreSQL高可用(一)主从流复制
PostgreSQL高可用(二)使用pgpool实现主从切换+读写分离,付:宕机后的恢复脚本
参考文档:
https://www.jianshu.com/p/ef183d0a9213
https://www.pgpool.net/docs/pgpool-II-3.2.1/pgpool-zh_cn.html
主机分配
- OS:CentOS 7
- 节点1:master(192.168.36.130)
- 节点2:slave(192.168.36.131)
- 节点3:pool-master(192.168.36.133)
- 节点4:pool-slave(192.168.36.130)
以下文章用到节点1,2,3,4
PGPOOL高可用,解决单点问题
pgpool自身就可以实现高可用,无需依赖其他插件。
1 图例
2 看门狗简介
“看门狗”是一个 pgpool-II 的子进程,用于添加高可用性功能。 看门狗添加的功能包括:
-
pgpool 服务的生命检测
看门狗监控 pgpool 服务的响应而不是进程。 它通过被它监控的 pgpool 发送查询到 PostgreSQL,并检查响应情况。
看门狗还监控到从 pgpool 到前端服务器的连接(例如应用服务器)。 从 pgpool 到前端服务器的连接作为 pgpool 的服务来监控。 -
看门狗进程相互监控
看门狗进程交换被监控服务器的信息用来保证信息是最新的,并允许看门狗进程相互监控。 -
在某些故障检测中交换活跃/备用状态
当一个 pgpool 的故障被检测到,看门狗通知其他的看门狗这个消息。 看门狗在旧的活跃 pgpool 发生故障后通过投票确定新的活跃 pgpool 并更新活跃/备用状态。 -
在服务器切换的时候实现自动虚拟 IP 地址分配
当一个备用 pgpool 服务器提升为活跃的,新的活跃服务器启动虚拟 IP 接口。 也就是,之前的活跃服务器停用虚拟 IP 接口。 这确保活动的 pgpool 使用相同的 IP 地址,即使在发生服务器切换的时候。 -
在恢复的时候自动注册服务器为备用服务器
当失效的服务器恢复或者新的服务器连接上来,看门狗进程通知其他的看门狗进程关于新服务器的信息, 看门狗进程在活跃服务器和其他服务器上接收这些信息。 然后,新连接上的服务器注册为备用节点。
3 启动/停止看门狗
看门狗进程由 pgpool-II 自动启动/停止,也就是说,没有单独的命令来启动/停止它。 但是,pgpool-II 启动时必须拥有管理员权限(root), 因为看门狗进程需要控制虚拟 IP 接口。
在等待到所有的 pgpool 启动后,生命监测将启动。
所以在启动pgpool时使用root用户启动
4 配置看门狗 (pgpool.conf)
看门狗的配置参数在 pgpool.conf 中配置。 在 pgpool.conf.sample 文件中的 WATCHDOG 小节是配置看门狗的示例。 以下所有的选项都是使用看门狗进程必须指定的。
4.1 基本配置
4.1.1 启用
use_watchdog
如果为 on,则激活看门狗,默认为 off。
4.1.2到前端服务器的链路
trusted_servers
用于检测前端链路状态的信任服务器的列表。每个服务器需要能响应 ping。 用逗号分隔服务器的列表,例如“hostA,hostB,hostC”。
ping_path
本参数指定用于监控到前端服务器连接的 ping 命令的路径。只需要设置路径,例如“/bin”。
4.1.2pgpool-II 的生命检查
wd_interval
本参数指定用于 pgpool-II 生命检查的间隔,单位为秒(一个大于或等于 1 的数字