最近调查PostgreSQLcrash,整理了下一般常见的几种原因。
1. PostgreSQL版本更新
PostgreSQL的一般维护期为5年。5年内,会不断对发现的bug进行修复。
因此,我们需要及时更新PostgreSQL。避免触发bug发生crash。
2. 磁盘空间满
磁盘空间满是导致PostgreSQL crash的一个常见原因。
因此对磁盘监控,是非常必要的事情。
3. 删除关键日志文件
比如删除了pg_clog/pg_xlog/pg_log
4. 内存OOM
shared_buffers设置过大。
work_mem设置不足。
connections过多导致内存不足。
5. 硬件问题
使用未经验证,不兼容的硬件。
磁盘故障。
系统长时间运行。
6. 太多的连接。
7. zombie locks
transaction未释放。