2011-03-30 86 views
1

在每個星期二的晚上10點,突然之間oracle都會產生巨大的REDO日誌,直到磁盤空間不足。根據日誌,我的應用程序在這段時間內沒有運行任何巨大的查詢或任何事情。巨大的Oracle重做日誌

我唯一能找到的就是當時dba_scheduler_job_run_details表啓動了一項oracle作業。我無法在Google上找到關於這項工作的任何信息,所以對於任何想法都絕望。

從dba_scheduler_job_run_details信息:

JOB_NAME:ORA $ AT_SA_SPC_SY_254

狀態:停機

ACTUAL_START_DATE:22年11月3日22:00:02.125060000 CST6CDT

RUN_DURATION 9:4: 19.0

+0

我認爲這是針對ServerFault或dba.stackexchange.com的主題 – 2011-03-30 22:17:14

回答

2

10PM通常是自動統計收集開始的時間。雖然它通常每天都在運行。在11g統計信息收集中使用自動任務而不是調度程序,請嘗試使用如下查詢查找統計信息作業:select * from dba_autotask_job_history order by window_start_time desc;

但即使問題是由統計數據引起的,看起來很奇怪,它會導致過多的重做。通常,收集統計數據有很多閱讀和少量的寫作。除非你有許多小桌子一直在變化,在這種情況下,統計信息的數量可能比實際數據大得多。如果是這種情況,你可能需要更頻繁地收集統計數據,或者鎖定統計數據。

或者統計過程可能在特定的表格上爆炸。這會告訴你上次分析的是哪張表,也許它會給你一個線索:select last_analyzed, dba_tables.* from dba_tables order by 1 desc nulls last;

0

我的東西產生巨大的REDOLOG,那麼你必須有巨大的DML活動。對於試圖清除一些數據,但失敗,回滾,然後試圖一次又一次地做同樣的任務的examaple清理腳本...

如何證明/反駁你的疑惑的最佳方式是「日誌礦工工具「。這不是微不足道的,但它會告訴你哪些語句(以及哪個表)生成了大部分重做和那個時間。