Postgres错误|COPY命令磁盘配额超出



我有两个表,有770万条记录,其他表有1.6亿条记录。我想在我的NAS驱动器上转储表(700GB+可用内存(。我使用以下命令将数据导出到csv文件:

COPY (select * from table_name) to '/path_to_nas_drive/test.csv' csv header;

在运行上述命令后,它抛出了问题

无法写入COPY数据:磁盘配额超过

它为什么抛出错误?是因为数据库服务器上的空间问题,它无法创建缓冲区/临时文件,还是有任何方法可以处理这个问题?

让我们试着缩减请求,只获取一行,以确保即使只对一行使用COPY:

COPY (select * from table_name limit 1) to '/path_to_nas_drive/test.csv' csv header;

您也可以尝试使用gzip压缩输出,如下所示:

psql -c "COPY (select * from table_name) to stdout" yourdbname | gzip > /path_to_nas_drive/test.csv.gz

这是客户端问题,而不是服务器问题"不能写入COPY数据";由CCD_ 1生成;超过磁盘配额";来自OS,然后由CCD_ 2传递。

因此,您的NAS告诉您,您不允许向其写入您想要写入的内容。也许它有足够的空间,但它不会给您,因为";你"是运行psql的人,而不是运行PostgreSQL服务器的人。

最新更新