Oracle

如何在物化視圖刷新時關閉重做日誌記錄?

  • December 16, 2014

10gR2 數據庫,在 Data Guard 配置中用於物理和邏輯備用。

我有一個物化視圖,它定期對來自遠端數據庫的大約 40K 記錄進行完全刷新。多年來,它一直在每小時刷新一次,沒有問題。昨天我被要求提高刷新率,比如每 2 分鐘一次。我這樣做了,沒有明顯的問題,直到今天早上 4 點左右存檔日誌目錄填滿。

我整天都在努力關閉日誌記錄。我有:

  • 在數據庫中設置 NO FORCE LOGGING
  • 將物化視圖和基表更改為 NOLOGGING
  • 將視圖上的索引更改為 NOLOGGING

似乎沒有什麼能降低日誌生成率。在讀取它的過程開始之前,視圖在計劃任務中通過 dbms_refresh.refresh 刷新。

我知道我應該改進流程,可能是在每次作業執行時將數據吸入全域臨時表,但這需要一段時間才能通過 QA 工廠。關於我在這裡缺少什麼的任何見解?從我能讀到的來看,我似乎應該能夠做到這一點。這篇asktom 文章似乎支持這一點,但我似乎無法讓它發揮作用。

非常感謝您的寶貴時間。

啊,我偶然發現了解決方案。因此,請使用 dbms_mview 代替 dbms_refresh:

開始 dbms_mview.refresh(‘MYTABLE’, 方法 => ‘C’, atomic_refresh=>false); 結尾;

我在這裡找到了解決方案

感謝您的關注。

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