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

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

我在 Amazon RDS 上运行的 Oracle 实例在大约 20 分钟内填满了 20GB 的存储空间。我检查了所有使用此数据库的应用程序,没有任何异常 - 我不明白为什么会发生这种情况。

查看 CloudWatch 中的图表:

在此处输入图片描述

正如您所见,我将存储空间增加到 25GB,希望能“有所收获” - 但显然,它所做的只是增加了 5GB 的可用空间。

此实例运行一个流量非常低的 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 GB。

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

答案1

好的,我调整了 TEMP 表空间的大小,这似乎解决了我的问题。

这是我运行的命令:

ALTER TABLESPACE TEMP SHRINK SPACE KEEP 512M;

似乎已经解决了这个问题(数据库大小从 19GB 变为 2GB),但我仍然不明白为什么在如此小的环境中会发生这种情况。

添加了一些 CloudWatch 警报,以便我下次可以提前跳转(如果有下一次的话)。

相关内容