执行postgres pg_dump,报错No space left on device

Posted starrebel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行postgres pg_dump,报错No space left on device相关的知识,希望对你有一定的参考价值。

发现空间还有挺多的,就想到可能是inode满了,用df -hi查看发现根目录下的inode使用率确实100%。

然后就开始查找哪个目录,在 / 下面执行:

for i in ./*; do echo $i; find $i |wc -l; done

观看结果,然后找到inode多的目录再一级级查找下去,最后发现

/var/spool/clientmqueue 目录使用了特别多的inode,查了一下这个目录的目的:

当你使用简单的sendmail发邮件的时候,或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool/clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了

似乎没用,就直接rm -rf /var/spool/clientmqueue/* 删除。

然后再尝试pg_dump,成功。

 

以上是关于执行postgres pg_dump,报错No space left on device的主要内容,如果未能解决你的问题,请参考以下文章

Postgres pg_dump 每次都以不同的顺序转储数据库

postgres 文件系统级别的备份 pg_dump

postgres 文件系统级别的备份 pg_dump

Postgresql 9.2执行pg_dump命令问题[重复]

使用 pg_dump 将 Postgres 从 Windows 迁移到 Linux 时如何选择正确的排序规则来创建数据库?

当端口 5432 被阻塞时,来自远程服务器的 pg_dump postgres 数据库