You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL自动生成大量dump文件占用内部存储空间的解决方案咨询

MySQL自动生成大量dump文件占用存储空间的解决办法

第一步:先定位dump文件类型

进入MySQL日志/文件存储目录后执行以下命令识别文件来源:
ls -lh *.dump *.core *.sql
常见的dump文件分为三类:

  • core.xxx格式:系统触发的MySQL进程崩溃核心转储文件
  • mysqld_xxx/innodb_xxx前缀的dump文件:MySQL自身生成的诊断类转储文件
  • 带时间戳的.sql/.dump文件:定时任务触发的mysqldump备份文件

第二步:对应不同场景的解决方案

场景1:进程崩溃生成的core dump文件

  • 临时关闭core dump生成:执行ulimit -c 0,即刻停止新的core文件生成
  • 永久关闭:修改/etc/security/limits.conf,新增以下两行配置后重启服务器:
    * soft core 0
    * hard core 0
    
    同时检查MySQL配置文件my.cnf/my.ini,注释掉core-file配置项,重启MySQL生效
  • 根因修复:查看MySQL错误日志中对应dump生成时间的报错,排查是资源不足、SQL触发异常还是版本bug导致的崩溃,修复后即可停止异常dump生成

场景2:自动备份任务生成的未轮转备份文件

  • 执行crontab -l检查系统定时任务,定位自动执行mysqldump的备份脚本
  • 在备份脚本中新增过期清理逻辑,例如仅保留最近7天的备份文件,新增命令如下(替换为你的实际备份路径和文件后缀):
    find /data/mysql/backup -name "*.sql" -mtime +7 -delete

场景3:MySQL诊断参数开启生成的诊断dump

  • 检查MySQL配置文件,确认是否开启了非必要的诊断参数,包括innodb_status_output、innodb_status_output_locks、general_log等,不需要的情况下直接注释对应配置,重启MySQL即可停止生成。

临时空间清理方案

已生成的历史dump文件如果不需要用于问题排查,可直接删除释放空间:

  • 确认文件未被占用的情况下执行rm -f 目标文件路径即可
  • 如果文件正被进程占用无法释放空间,可执行> 目标文件路径清空文件内容快速释放空间

内容的提问来源于stack exchange,提问作者HAJJAJI Zakaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:15:04