问题描述

PostgreSQL/PPAS数据库磁盘空间占用剧增。

 

问题原因

  • 原因一:大量更新导致日志剧增,来不及归档和删除,占用了磁盘空间。
  • 原因二:查询操作含有大数据量的排序、连接等操作,处理过程中产生临时表并溢出到磁盘,短时间内造成大量空间占用。

 

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  • 原因一的解决方法:提高实例的磁盘空间容量或降低更新频率。
  • 原因二的解决方法:以下SQL语句用于指定每个查询可以使用的临时表空间上限(单位为KB),执行成功后,单个查询生成的临时表空间达到上限就会报错。这样就能及时发现有问题的SQL语句,并避免磁盘空间被占满。
    • 对于PostgreSQL用户,通过RDS初始帐号执行如下SQL语句
      alter role all set temp_file_limit = [$Table_Space_Limit];
      注:[$Table_Space_Limit]为临时表空间上限。
    • 对于PPAS用户,通过RDS初始帐号执行如下SQL语句。
      select rds_set_conf_for_all_roles('temp_file_limit', '[$Table_Space_Limit]');
 
 

适用于

  • 云数据库 RDS PostgreSQL 版
  • 云数据库 RDS PPAS 版

 

如果您的问题仍未解决,您可以在阿里云社区提交工单联系阿里云技术支持。