首页 > 数据库 >【数据库】无法启动数据库:内存不足

【数据库】无法启动数据库:内存不足

时间:2024-11-24 18:27:00浏览次数:5  
标签:sudo 启动 数据库 swapfile 交换 内存不足 内存 分区

最近在打计算机系统能力大赛的数据库创新设计赛道,不得不说学到了很多东西。比赛用的是PolarDB(套皮PG),最近上华为云用的是OpenGuass(也是套皮PG)(PG简直是开源之神
在实践中,由于服务器资源有限,经常遇到的一个问题是:FATAL: could not create shared memory segment: Cannot allocate memory。下面记录两种解决方案

1.手动修改配置文件

这种方案主要针对在数据库调参之后,使用pg_ctl重启数据库时遇到的内存分配问题。在PolarDB中,postgres.auto.conf文件记录了数据库每次启动时的部分参数标准(主要针对于在psql)调过的参数。笔者常用VsCode进行开发,在VsCode中使用ctrl+p搜索该文件名即可找到该文件,对其中的shared_buffers参数进行修改即可。一般设为2GB即可正常启动

2.手动启用额外的交换分区

在服务器资源很有限(比如我的华为云ECS,只有4GB内存),即使清理内存后也无法在物理上满足数据库的启动要求怎么办?
此时可以尝试手动启用额外的交换分区

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

设置后,可以成功启动数据库。关于原理,此处贴上来自GPT的介绍(OS学的依托的结果)。

交换分区(Swap Partition)是 Linux 系统中用于管理物理内存不足时的一种机制。它相当于硬盘的一块空间,当系统的物理内存(RAM)不够用时,部分数据会被移到交换分区,从而释放物理内存给当前运行的进程。

交换分区的作用

  1. 防止内存溢出:当系统的 RAM 被完全使用时,操作系统会将不常用的内存页(数据或进程)临时存储到交换分区中,保证系统继续运行而不会因为内存耗尽而崩溃。

  2. 提升系统稳定性:在内存高负载的情况下,交换分区作为“后备”存储,可以帮助系统避免“内存不足”的错误。特别是在内存占用较高的服务器或运行多个应用程序时,交换分区能够提供额外的内存支持。

  3. 内存页回收:Linux 会在内存使用压力大时主动把一些不活跃的内存页交换到磁盘上,换回来时再重新加载到 RAM,这样有助于提高系统的效率,特别是对于运行较多进程的系统。

  4. 提高多任务处理能力:当系统需要处理大量并发任务时,交换分区可以扩展可用内存容量,从而支持更多的进程和任务。


交换分区的缺点

  1. 性能开销:交换分区通常存放在硬盘或固态硬盘(SSD)中,相比 RAM,其访问速度要慢得多。如果系统频繁依赖交换分区,可能会导致性能显著下降(特别是在传统硬盘上)。

  2. 过度依赖交换分区不推荐:虽然交换分区能延缓内存耗尽的情况,但它不能替代物理内存。系统性能的瓶颈通常是在频繁使用交换分区时,而不是物理内存不足。


何时需要使用交换分区

  • 内存较小:如果你的系统内存较小(例如 4GB 或更少),配置交换分区能提高系统的稳定性,防止内存不足时程序崩溃。
  • 服务器或多任务环境:对于运行多个服务或进程的服务器,交换分区能提供缓解内存压力的作用。
  • 虚拟机或容器:虚拟机或容器中通常会配置交换分区,用于应对动态内存需求。

如何配置交换分区

  1. 创建交换文件(如果没有交换分区)
    如果没有交换分区,可以创建一个交换文件来启用交换:

    sudo fallocate -l 1G /swapfile  # 创建 1GB 大小的交换文件
    sudo chmod 600 /swapfile        # 设置交换文件的权限
    sudo mkswap /swapfile           # 格式化为交换空间
    sudo swapon /swapfile           # 启用交换文件
    
  2. 查看当前交换使用情况
    可以通过 freeswapon 命令查看交换分区的使用情况:

    free -h
    swapon --show
    
  3. 设置永久生效
    为了使交换文件在系统重启后仍然有效,需要在 /etc/fstab 文件中添加如下内容:

    /swapfile none swap sw 0 0
    

总结

交换分区在物理内存紧张时提供了一种缓解措施,增强了系统的稳定性。但如果系统依赖交换分区过多,可能会影响性能。因此,建议尽量根据需要配置适当的交换分区大小,同时确保系统有足够的物理内存。

标签:sudo,启动,数据库,swapfile,交换,内存不足,内存,分区
From: https://www.cnblogs.com/liu-yc/p/18566121

相关文章

  • SSM小区管理系统lo0y7 本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:业主,缴费信息,业主报修,车辆入场,车辆出场,员工,巡查任务开题报告内容一、研究背景与意义随着城市化进程的加快,小区管理面临着前所未有的挑战。传统......
  • SSM物业管理系统3k015 本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上
    题目:SSM物业管理系统3k015进度安排:(1)2024年11月1日-2024年11月15日 确定选题,下达任务书,撰写开题报告;(2)2024年11月15日-2024年12月20日提交开题报告定稿;(3)2024年12月21日-2025年3月14日 完成选题的设计、论文大纲的撰写;(4)2025年3月15日-2025年3月21日  毕业(设计)论文......
  • 全新向量数据库SQL Server 2025:带你迈入AI驱动的数据未来
    全新向量数据库SQLServer2025:带你迈入AI驱动的数据未来 全新向量数据库SQLServer2025:带你迈入AI驱动的数据未来  上次大家下单的《微软憋大招:SQLServer+Copilot=地表最强AI数据库!》抱怨迟迟没有发货,这次微软没有食言,终于发货!前言随着人工智能技术的普及,客户......
  • 黑马头条Day4-19启动ApArticleApplication时报错some of the beans in the applicatio
    文章目录1.错误呈现2.错误原因3.解决方案(注入ApArticleService改成注入ApArticleMapper)视频教程:黑马程序员Java项目实战微服务项目《黑马头条》开发全套视频教程,基于SpringBoot+SpringCloud+Nacos等企业级微服务架构项目解决方案1.错误呈现APPLICATIONFAILED......
  • mysql启动错误
    从错误信息“Can'tstartserver:Bindonunixsocket:Addressalreadyinuse”以及“Doyoualreadyhaveanothermysqldserverrunningonsocket:/tmp/mysql.sock?”可以看出,MySQL无法绑定到指定的Unix套接字文件 /tmp/mysql.sock,因为该地址已经被其他进程占用......
  • AI一键生成证件照片HivisionIDPhotos,自动抠图,多尺寸预设模板 Windows一键启动包
    今天给大家带来AI证件照生成工具HivisionIDPhotos该工具可以实现通过一张照片生成多尺寸证件照。应用场景个人证件照拍摄:适合需要制作标准证件照的个人用户,尤其是在需要快速生成合规照片的场景下,如签证、护照、驾照等。摄影工作室:提供高效的抠图和换装功能,帮助摄影工......
  • 数据库技术提升-MySQL数据库原理、设计与应用【3.4】
    3.触发器的触发触发器在创建完成后,若使触发器触发,则需要让触发器指定的数据表执行设置的对应操作。为了让读者更好地理解,接下来以触发inserttri触发器为例进行演示,具体SQL,语句及执行结果如下.(1)首先查看shgoods表中商品编号为5的库存量stock。(2)接着向购物......
  • Springboot儿童手表管理系29x7n(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,产品分类,智能手表开题报告内容一、研究背景随着科技的飞速发展和智能设备的普及,儿童手表作为一种智能穿戴设备,逐渐受到家长的关注和青睐。儿童手表不仅能......
  • Springboot儿童认知图文辅助系统6yhkv(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,课程信息,学生选课,通知公告开题报告内容一、研究背景与意义儿童的认知发展是他们成长过程中至关重要的一部分。传统的教学方式往往单一且缺乏互动,难......
  • SSM小区停车计费管理系统8owep 本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:年卡车辆,停车位,临时车辆,年卡车辆登记,临时车辆登记,普通管理员开题报告内容一、课题背景与意义随着城市化进程的加速,小区停车问题日益突出,传统的人......