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

大数据库pg_dump目录格式备份失败:设备无剩余空间排查求助

PostgreSQL 10 目录格式备份失败排查方案

环境与故障概述

环境配置

  • 宿主VM:Ubuntu 18.04,32核CPU、256GB内存
  • Docker版本:19.06
  • PostgreSQL 10:Docker容器部署,容器数据挂载至主机独立2TB磁盘
  • 源数据库大小:1.2TB

备份命令

pg_dump -h localhost -p 5432 -U azuredbadmin -j 18 -Fd proddb -f prod-db-backup

故障现象

目录格式备份运行5小时后触发报错:

pg_dump: [directory archiver] could not open output file 'prod-db-backup/blob_36511541.dat': No space left on device
pg_dump: [parallel archiver] a worker process died unexpectedly
  • 备份目标为4TB磁盘,当前仅占用250GB,剩余3.7TB可用,inode计数正常
  • 多次重试均在备份文件夹大小达到605876224字节时失败
  • 磁盘监控使用率未达20%,Docker根文件系统(2TB)也未占满
  • .dump格式备份可成功完成(占用900GB),但恢复耗时过长

可能故障原因

  1. 临时目录空间不足:并行备份时,pg_dump工作进程会在默认临时目录(通常为/tmp)生成临时文件,若该目录挂载在空间有限的分区(而非4TB备份磁盘),会触发空间不足报错。
  2. 备份路径挂载异常:prod-db-backup所在路径可能未正确挂载到4TB磁盘,实际指向了其他空间不足的分区。
  3. Docker容器磁盘配额限制:若pg_dump在容器内部执行,容器可能被配置了磁盘配额,导致无法写入更多数据。
  4. 文件系统限制:4TB磁盘的文件系统可能存在单个文件大小限制,或块大小导致的空间计算误差。

排查与解决方法

1. 检查临时目录空间

  • 执行df -h /tmp查看默认临时目录所在分区的剩余空间
  • 若空间不足,可通过以下方式指定临时目录到4TB磁盘:
    • 备份命令添加-T参数:
      pg_dump -h localhost -p 5432 -U azuredbadmin -j 18 -Fd proddb -f prod-db-backup -T /path/to/4tb-disk/tmp
      
    • 或临时修改环境变量后执行备份:
      export TMPDIR=/path/to/4tb-disk/tmp
      pg_dump -h localhost -p 5432 -U azuredbadmin -j 18 -Fd proddb -f prod-db-backup
      

2. 验证备份路径的实际挂载

  • 执行df -h $(realpath prod-db-backup),确认该路径的挂载点为4TB磁盘
  • 若在容器内执行备份,检查容器内的备份路径是否正确映射到宿主的4TB磁盘:
    docker inspect <postgres-container-name> | grep -A 10 "Mounts"
    

3. 检查Docker容器资源限制

  • 查看容器是否配置了磁盘配额:
    docker inspect <postgres-container-name> | grep -A 5 "StorageOpt"
    
  • 确认容器对备份路径的写入权限,以及宿主磁盘未设置用户级配额

4. 检查文件系统属性

  • 查看4TB磁盘的文件系统类型:
    df -T /path/to/4tb-disk
    
  • 查看文件系统的最大文件大小限制:
    tune2fs -l /dev/<4tb-disk-device> | grep "Max file size"
    

5. 小范围测试定位问题

  • 减少并行数(如-j 4)执行目录格式备份,排除并行进程异常
  • 尝试仅备份单个大表,确认是否为特定表的备份触发报错:
    pg_dump -h localhost -p 5432 -U azuredbadmin -j 4 -Fd proddb -t large_table -f prod-db-single-table-backup
    

内容的提问来源于stack exchange,提问作者Mahesh Babu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:45:31