暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Mogdb - 处理安装报错:FATAL: could not create shared memory segment: Cannot allocate memory

原创 伊织鸟 2022-08-31
1799

版本信息

数据库版本:Mogdb 3.0.1
服务器版本:Centos 7.9

场景描述

使用gs_om进行数据库的安装,在数据库预安装完毕后,数据库初始化阶段,出现如下报错:
图片.png

初步诊断

根据报错提示和日志输出,可以判断数据库已经完成初始化,故障节点主要发生在启动阶段。同时通过报错可以确定问题点在于sysctl.conf文件中的kernel.shmall和kernel.shmmax和数据库shared_buffers参数不匹配导致,多常见于shared_buffer > kernel.shmmax


TIPS:

kernel.shmall:可以简单理解为一个共享内存段的最大值,一般要大于数据库的共享内存

kernel.shmmax:共享内存段的页数,为kernel.shmall/4K(os_block_size)


处理过程

分别查看sysctl.conf中的kernel.shmall和kernel.shmmax参数和数据库shared_buffers参数

cat /etc/sysctl.conf cat postgresql.conf|grep shared_buffers

图片.png

图片.png

发现参数设置没有问题,继续检查内存,发现内存足够。

free -m

图片.png

继续查看,发现free命令中返回的的swap为0,加了2048M的swap,重新初始化数据库。

dd if=/dev/zero of=/swapfile bs=1m count=2048 mkswap /swapfile swapon /swapfile free -m

图片.png

数据库可以正常初始化。

图片.png

图片.png

故障总结

初始化数据库,分为两步,1、初始化实例,2、启动数据库。本文中,通过初始化的输出日志,可以确认初始化实例已完成,报错发生在启动过程中,根据数据库日志明确故障成因。同时也可以通过修改参数log_min_messages输出更详细的日志输出。

本次故障中,参数配置没有任何的问题,但是由于未能配置swap,导致故障的产生。建议使用ptk工具进行数据库的安装,可以在数据库安装前自动检查安装检查项,并生成对应的修复脚本。

最后修改时间:2022-08-31 20:24:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论