跳过正文
  1. PostgreSQL大法师/

故障档案:时间回溯导致的Patroni故障

·288 字·1 分钟· ·
PostgreSQL PG管理 故障档案
冯若航
作者
冯若航
Pigsty 创始人, @Vonng

摘要:机器因为故障重启,NTP服务在PG启动后修复了PG的时间,导致 Patroni 无法启动。

Patroni中的故障信息如下所示:

Process %s is not postmaster, too much difference between PID file start time %s and process start time %s

patroni 进程启动时间和pid时间不一致。就会认为:postgres is not running。

两个时间相差超过30秒。patroni 就尿了,启动不了了。

打印错误信息的代码为:

start_time = int(self._postmaster_pid.get('start_time', 0))
if start_time and abs(self.create_time() - start_time) > 3:
    logger.info('Process %s is not postmaster, too much difference between PID file start time %s and process start time %s', self.pid, self.create_time(), start_time)

同时,发现了Patroni里的一个BUG:https://github.com/zalando/patroni/issues/811 错误信息里两个时间戳打反了。

经验与教训: NTP 时间同步是非常重要的

相关文章

故障档案:PG安装Extension导致无法连接
·991 字·2 分钟
PostgreSQL PG管理 扩展 故障档案
今天遇到一个比较有趣的Case,客户报告说数据库连不上了,发现是扩展导致的。
故障档案:pg_dump导致的连接池污染
·2651 字·6 分钟
PostgreSQL PG管理 故障档案
有时候,组件之间的相互作用会以微妙的形式表现出来。例如使用pg_dump从连接池中导出数据,就可能产生连接池污染的问题。
PostgreSQL数据页面损坏修复
·4605 字·10 分钟
PostgreSQL PG管理 数据损坏 故障档案
采用二进制编辑的方式修复PostgreSQL数据页,以及如何让一条主键查询出现两条记录来。
故障档案:PostgreSQL事务号回卷
·2024 字·5 分钟
PostgreSQL PG管理 故障档案
XID WrapAround也许是PostgreSQL特有的一种故障
故障档案:序列号消耗过快导致整型溢出
·1208 字·3 分钟
PostgreSQL PG管理 故障档案
如果您在表上用了Interger的序列号,最好还是考虑一下可能溢出的情况。
故障档案:快慢不匀雪崩
·2966 字·6 分钟
PostgreSQL PG管理 故障档案
最近发生了一起匪夷所思的故障,某数据库切走了一半的数据量和负载,结果却因为负载变大被打挂了。