数据库 |设备上没有 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的临时文件,然后你可以检查日志文件看是否确实是这个原因。
尝试识别错误查询并修复它们。
如果临时文件不是问题,可能是临时表。当数据库会话结束时,它们会自动删除。您的应用程序是否使用临时表?
另一种可能是由数据库以外的其他东西创建的文件。
我在 运行 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的临时文件,然后你可以检查日志文件看是否确实是这个原因。
尝试识别错误查询并修复它们。
如果临时文件不是问题,可能是临时表。当数据库会话结束时,它们会自动删除。您的应用程序是否使用临时表?
另一种可能是由数据库以外的其他东西创建的文件。