数据库 |设备上没有 space

Postgresql | No space left on device

我在 运行 PostgreSQL 数据库上的批处理过程中遇到 space 问题。

但是,df -h命令显示机器有足够的space

下面是准确的错误

org.springframework.dao.DataAccessResourceFailureException: PreparedStatementCallback; SQL [INSERT into BATCH_JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) values (?, ?, ?, ?)]; ERROR: could not extend file "base/16388/16452": No space left on device
  Hint: Check free disk space.

是什么导致了这个问题?

编辑

postgres 数据目录是 /var/opt/rh/rh-postgresql96/lib/pgsql/data

df -h /var/opt/rh/rh-postgresql96/lib/pgsql/data
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2      100G   63G   38G  63% /

很可能有一些查询会创建临时填满您的硬盘的大型临时文件。一旦查询完成(或失败),这些文件将被删除,因此当您查看时文件系统有足够的空闲空间 space。

postgresql.conf中设置log_temp_files = 10240(并重新加载)记录所有超过10MB的临时文件,然后你可以检查日志文件看是否确实是这个原因。

尝试识别错误查询并修复它们。

如果临时文件不是问题,可能是临时表。当数据库会话结束时,它们会自动删除。您的应用程序是否使用临时表?

另一种可能是由数据库以外的其他东西创建的文件。