Performance

重建 TEMP 後的 Oracle 性能

  • August 19, 2011

我的應用程序執行了將近一年沒有任何問題。但是最近有人為一份報告執行了一個大選擇,Oracle 的 TEMP 數據文件從 5GB 增長到了 30GB。然後伺服器空間不足。

使用者的表空間/數據文件沒有受到影響,因為我創建的文件足夠大,可以長時間容納所有數據,實際上,我們仍然使用了最初分配的大約 15% 的使用者表空間。所以我猜問題不在這裡。沒有報告或檢測到數據失去。

伺服器空間不足後,我刪除了一些舊的備份文件並執行了以下操作:

  • 創建臨時表空間 temp2 TEMPFILE ‘/u02/oradata/db/temp02.dbf’ SIZE 50m;
  • 更改數據庫預設臨時表空間 temp2;
  • DROP TABLESPACE temp 包括內容和數據文件;
  • CREATE TEMPORARY TABLESPACE temp TEMPFILE ‘/u02/oradata/db/temp01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 5000M;
  • ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
  • 刪除表空間 temp2 包括內容和數據文件;

一小時後,我開始接到使用者的電話,說應用程序很慢,他們無法登錄,一切都很慢,應用程序凍結。但問題會在 2-3 分鐘後自行“解決”。當我做一些測試時,檢查記憶體/io/cpu,一切都很好。我問使用者,他說現在一切都很好,我什麼也沒做。

我試圖重建索引並重新計算統計數據。但問題仍然存在。

在應用程序方面,當使用者給我打電話時,我記錄了很多 Oracle 錯誤:

  • ORA-12571: TNS: 數據包寫入器失敗
  • ORA-01012: 未登錄
  • ORA-00028: 您的會話已被終止
  • ORA-12170: TNS: 發生連接超時

2-3分鐘後,沒有更多的錯誤,性能很好。

白天有 80 個使用者登錄,晚上有 2 個使用者登錄,系統使用率非常低。

Oracle Release 11.2.0.1.0 伺服器 Linux CentOS

請問有人有什麼想法嗎?

謝謝!

埃德加

嗯,我們在 TEMP 文件中遇到了這個問題,應用程序變得不穩定。所以我的注意力集中在數據庫上。我花了很多時間重建數據庫和另一個應用伺服器,做了很多測試,包括網路流量,我們意識到我們的應用伺服器實際上受到了某種攻擊,我們只是改變了應用伺服器的 IP,現在一切很好!在臨時文件的同時出現這個網路問題真是太倒霉了,我把注意力轉移到了錯誤的地方。

只是為了檢查,我在工作站/台式機上使用了這個 IP 地址,工作站開始失去網路數據包並變得不穩定。

@Alex-Poole,非常感謝您的關注!

埃德加

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