如果出现数据库占用大量内存,导致操作系统无法提供更多内存时,会触发操作系统的oom,操作系统会找到占用内存最多的进程杀掉。由于我们一般建议shared_buffers设置为最多25%的操作系统内存,因此一般杀掉的会是一个数据库的服务进程(每个数据库连接对应一个服务进程)。服务进程被杀掉后,数据库会自动重启所有进程,避免共享内存的不一致。因此当出现内存溢出问题时,故障一般会自动恢复,只需要通过数据库日志排查导致oom的SQL即可。
如果是集群环境,如果内存溢出的是主节点,可能会因为数据库自动重启所有进程的时间过长,导致集群切机,这时按一般的集群切机处理方法“集群failover修复”修复集群即可。如果内存溢出的是备节点,故障会自动恢复
kingbase数据库内存溢出处理
最新推荐文章于 2024-06-11 13:14:18 发布