Oracle数据库在大约20分钟内突然填满存储设备

在Oracle的RDS上,我的Oracle实例在20分钟的时间内填满了20GB的存储空间。 我检查了所有使用这个数据库的应用程序,没有看起来不寻常 – 我不明白为什么会发生这种情况。

查看CloudWatch的图表:

在这里输入图像说明

正如你所看到的,我把存储容量增加到了25GB,希望能够“摆脱一些松动” – 但显然,它所做的只是增加了5GB的可用空间。

这个实例运行一个非常低的stream量的Web应用程序,你可以看到可用空间已经非常稳定的用法。 对于这个系统,20GB应该足够了。 这是怎么回事?

任何提示,我怎么可以弄清楚什么是占用所有的空间?

编辑:我设法从数据库中获得的一些统计数据:

SELECT ( SELECT SUM(BYTES)/1024/1024/1024 DATA_SIZE FROM DBA_DATA_FILES ) + ( SELECT NVL(SUM(BYTES),0)/1024/1024/1024 TEMP_SIZE FROM DBA_TEMP_FILES ) + ( SELECT SUM(BYTES)/1024/1024/1024 REDO_SIZE FROM SYS.V_$LOG ) + ( SELECT SUM(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 CONTROLFILE_SIZE FROM V$CONTROLFILE) "Size in GB" FROM DUAL; 

生产:

 Size in GB ------------------ 19.360321044921875 

并且使用一个消除过程,我发现DBA_TEMP_FILES占用了19 GB中的18个。

DBA_TEMP_FILES中有什么? 我如何清除它们?

好吧,我调整了我的TEMP表空间,似乎已经解决了我的问题。

这是我跑的命令:

 ALTER TABLESPACE TEMP SHRINK SPACE KEEP 512M; 

似乎已经解决了这个问题(数据库大小从19GB到2GB),但我仍然在黑暗中为什么会发生在这样一个小环境。

增加了一些CloudWatch警报,所以我可以在下次提前跳过(如果有下一次)。