Database

Oracle 數據庫在大約 20 分鐘內突然填滿儲存設備

  • March 10, 2014

我在 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 個。

DBA_TEMP_FILES 中有什麼?我該如何清除它們?

好的,我調整了 TEMP 表空間的大小,這似乎解決了我的問題。

這是我執行的命令:

ALTER TABLESPACE TEMP SHRINK SPACE KEEP 512M;

似乎已經解決了這個問題(數據庫大小從 19GB 變為 2GB),但我仍然不知道為什麼會在如此小的環境中發生這種情況。

添加了一些 CloudWatch 警報,以便我下次可以提前跳過(如果有下一次)。

引用自:https://serverfault.com/questions/581089