问题描述
阿里云云数据库PostgreSQL数据库磁盘空间占用剧增。
问题原因
- 原因一:大量更新导致日志剧增,来不及归档和删除,占用了磁盘空间。
- 原因二:查询操作含有大数据量的排序、连接等操作,处理过程中产生临时表并溢出到磁盘,短时间内造成大量空间占用。
解决方案
- 原因一的解决方法:提高实例的磁盘空间容量或降低更新频率。
- 原因二的解决方法:以下SQL语句用于指定每个查询可以使用的临时表空间上限(单位为KB),执行成功后,单个查询生成的临时表空间达到上限就会报错。这样就能及时发现有问题的SQL语句,并避免磁盘空间被占满。通过RDS高权限账号执行以下SQL语句:
alter role all set temp_file_limit = [$Table_Space_Limit];
说明 [$Table_Space_Limit]为临时表空间上限。