10. Watchdog support
Setting up software watchdog on Linux
将多个PostgreSQL服务器作为主服务器运行可能会由于时间线的不同而导致事务丢失。 这种情况也称为裂脑问题。 为了避免脑裂,Patroni需要确保在DCS中的领导者密钥过期后PostgreSQL将不接受任何事务提交。 在正常情况下,如果领导者锁更新由于任何原因而失败,Patroni会尝试通过停止PostgreSQL来实现此目的。 但是,由于多种原因,这可能不会发生:
- Patroni因漏洞,内存不足或被系统管理员意外杀死而崩溃。
- 关闭PostgreSQL太慢了
- 由于系统上的高负载,虚拟机管理程序暂停了VM或其他基础结构问题,Patroni无法运行。
为了保证在这些条件下的正确行为,Patroni支持看门狗设备。 看门狗设备是一种软件或硬件机制,当它们在指定的时间范围内未获得保持活动的心跳时,将重置整个系统。 万一常见的Patroni裂脑保护机制发生故障,这将增加一层额外的故障保护。
在将PostgreSQL升级为Master之前,Patroni将尝试激活看门狗。 如果看门狗激活失败并且需要看门狗模式,则该节点将拒绝成为主节点。 在决定参加领导者选举时,Patroni还将检查看门狗配置是否将使其完全成为领导者。 在降级PostgreSQL后(例如由于手动故障转移),Patroni将再次禁用看门狗。 当Patroni处于暂停状态时,看门狗也将被禁用。
默认情况下,Patroni会将看门狗设置为在TTL过期之前5秒钟过期。使用默认设置<