2013-12-18 66 views
0

我正在使用快速刷新MVIEWs複製網絡中的一些表。一切都很好,但是在考慮我的刪除/清除過程時遇到了問題。物化視圖日誌記錄排除刪除

提供日誌表的MVIEW的源具有7天的數據保留時間。也就是說,我將運行每晚清除過程以刪除當前日期超過7天的數據。 但是,目標MVIEW在ODS上,數據保留策略爲30天。而且,這些MVIEW目前不在填充另一個模式或一組表格。

問題是,當我從源表刪除,那些delete語句將通過傳播到目標MVIEWs,現在我不再有值得30天的數據 - 僅7

有沒有辦法排除爲MVIEW日誌表記錄DELETE?我注意到在MLOG $ _Table_Name中有一列'DMLTYPE $$'。我可以以某種方式從日誌表中刪除DMLTYPE $$ ='D'的所有記錄嗎?

謝謝大家,是的,我確實嘗試過在線研究。 Regards, Steve

回答

0

我想你可以在運行刷新之前手動從物化視圖日誌中刪除數據。這可能會奏效。但這不是我真正感到滿意的解決方案。這將是一個非常定製的解決方案,可能不會得到官方的支持。而且,如果可能存在另一個依賴於物化視圖日誌的物化視圖,則必須確保只刪除與物化視圖的訂閱相關的那些行。此外,目標上的物化視圖需要更新,以便您可以通過單獨的進程手動刪除超過30天的行。

如果這些都是業務需求,像Oracle Streams(或GoldenGate)這樣的東西將是一個更合適的架構解決方案。這些產品旨在爲您提供更多的靈活性,以適用於您應用的邏輯更改記錄(LCR)。例如,在Streams中,很容易創建一個放棄刪除LCR的自定義應用處理程序。而且,由於您將LCR應用於目標地點的表格而不是物化視圖,因此您的30天清除過程更容易管理。這將是一個相對常見的Streams設置,而不是一個非常獨特的物化視圖設置。

+0

我們正在考慮使用Streams作爲選項,但對於MVIEWs來說,開發和實現時間非常短暫,所以它似乎是最好的選擇。但是你說得很好。 GoldeGate不會因成本而枯萎。也許最好的選擇是將保留策略調整爲30天。這不是一個巨大的數據量,差別是可以管理的。非常感謝賈斯汀。 – prajna1108