PostgreSQL提示:ERROR: temporary file size exceeds temp_file_limit (1024kB)

问题现象

在RDS PostgreSQL中进行查询操作时,提示如下错误:

ERROR:  temporary file size exceeds temp_file_limit (1024kB)

可能原因

在查询时可能产生临时文件,临时文件较大,而PostgreSQL中的参数temp_file_limit设置过小,导致查询中断。

temp_file_limit参数的更多解释,请参见temp_file_limit (integer)

解决方案

调大temp_file_limit参数的取值,使查询不报错即可。

修改参数方法如下:

  • 全局修改

    前往RDS 管理控制台进行修改,具体请参见设置实例参数

    说明

    RDS PostgreSQL中temp_file_limit默认值为{DBInstanceClassMemory/1024},即默认值为实例内存大小。

  • 当前会话修改

    登录RDS PostgreSQL实例后,执行如下命令进行修改:

    SET temp_file_limit ='1GB';

注意事项

temp_file_limit参数取值为-1时表示不限制临时文件大小,但是不建议将参数值设置为-1,也不建议将参数值设置过大,避免在发生复杂查询时,将磁盘空间写满,导致业务不可用。