PostgreSQL 错误:无法扩展文件,设备上没有剩余空间

hai*_*ham 5 postgresql storage database-administration

我正在运行一个查询,该查询在 PostgreSQL 上复制一个非常大的表(9200 万行)。经过 3 次迭代后,我收到此错误消息:

错误消息的屏幕截图

查询是:

CREATE TABLE table_name
AS SELECT * FROM big_table
Run Code Online (Sandbox Code Playgroud)

该问题不是由于数据库集群中空间不足造成的:运行查询时,表大小约为最大可能存储的 0.3%,表大小约为最大存储(包括所有副本)的 0.01%。我还检查了临时文件,但事实并非如此。

Lau*_*lbe 1

您肯定耗尽了文件系统资源。

确保尺寸正确:

SELECT pg_table_size('big_table');
Run Code Online (Sandbox Code Playgroud)

不要忘记,在错误发生后,支持新表的文件将被删除,因此在语句失败后拥有大量可用空间也就不足为奇了。

一种可能性是您没有用完磁盘空间,而是用完了可用 i 节点。如何检查空闲资源因文件系统而异;对于 Linux 上的 ext4 来说是

SELECT pg_table_size('big_table');
Run Code Online (Sandbox Code Playgroud)