小議物化檢視與基表資料不一致的消除(一)
這篇文章介紹一下快速重新整理的只讀物化檢視於基表不一致的解決方法。
我並沒有碰到過實際的情況,但是在網上看到過幾次類似的案例:快速重新整理的物化檢視與基表出現資料不一致的狀況。
因為我並沒有在使用中實際碰到過這種情況,因此不好確定問題產生的原因。不過推斷產生的原因可能有兩種,一個是Oracle的bug造成的,另一個是物化檢視的基表被人手工修改。
這裡並不打算討論問題是怎樣產生的,而是給出碰到這種問題後的解決方案。
最簡單的解決方法:將物化檢視執行完全重新整理。如果物化檢視不是實時訪問,可以考慮透過非原子性重新整理方式來提高重新整理速度。這種方法的優點是簡單方便,不會造成錯誤的結果,風險較小,但是不適用於資料量很大的情況。
第二種方法是重建物化檢視。這種方法由於避免了UNDO資訊且減少了REDO,效率要比完全重新整理高很多。而且也不會造成錯誤的結果。缺點是物化檢視刪除後到物化檢視重新建立完成直接,這個物件在資料庫中不再存在,如果這個時候訪問這個物件會直接報錯。而且物件重建後,需要恢復物化檢視的索引、約束、許可權和統計資訊等。這些步驟不但麻煩而且容易遺漏。更重要的是,對於資料庫很大的表,這種操作的代價仍然是很大的。
最後一種方法也是下面幾篇文章的重點,透過手工修改物化檢視日誌來達到物化檢視和基表的一致。這種方法的最大好處是對於資料量很大且不一致的資料量很小的情況,這種方法的代價很小,同步速度也很快。不過這種方法也有很明顯的缺點:首先就是方法比較複雜,要求對物化檢視的重新整理和物化檢視日誌有比較清晰的瞭解。而且操作失誤的話,很容易造成資料的進一步錯誤。不過,以前面兩種方法作為後盾,即使這種方法真的造成了資料的錯誤也不會產生太大的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1394355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小議物化檢視與基表資料不一致的消除(四)
- 小議物化檢視與基表資料不一致的消除(二)
- 小議物化檢視與基表資料不一致的消除(三)
- 建立遠端基表的物化檢視
- 資料庫的物化檢視資料庫
- 物化檢視妙用__表同步使用物化檢視方法
- DB2資料庫物化檢視:MQT物化查詢表的使用DB2資料庫MQQT
- 資料複製_物化檢視
- Oracle 資料庫檢視與基表的關係Oracle資料庫
- 物化檢視日誌表被DROP後建立物化檢視報錯
- 物化檢視的快速重新整理測試與物化檢視日誌
- 回收基表的空間,造成物化檢視只重新整理了一部分資料
- 物化檢視基礎概念、mview跨庫遷移表View
- 物化檢視--資料倉儲手冊
- Oracle資料庫中物化檢視的原理剖析Oracle資料庫
- oracle物化檢視系列(一)Oracle
- 【物化檢視】根據物化檢視日誌快速重新整理物化檢視的過程
- oracle資料字典表與檢視Oracle
- Oracle 資料庫字典 檢視 基表Oracle資料庫
- 物化檢視如何快速完成資料聚合操作?
- [zt]prebuilt 物化檢視遷移資料庫UI資料庫
- 【物化檢視】幾種物化檢視日誌分析
- 建議開發員少用帶錶連結的檢視(此檢視非物化檢視)
- trigger和物化檢視同步表
- Oracle 物化檢視 例項一Oracle
- 【筆記】 使用物化檢視(一)筆記
- (轉)oracle資料庫之間 表複製方法二(物化檢視 方法)Oracle資料庫
- Oracle物化檢視的建立及使用(一)Oracle
- oracle物化檢視Oracle
- 【MVIEW】Oracle通過物化檢視同步表資料及簡介ViewOracle
- 【ORACLE】物化檢視相關後設資料檢視欄位說明Oracle
- oracle10g partition分割槽表與物化檢視materialized viewOracleZedView
- 汽車之家基於 Apache Flink 的跨資料庫實時物化檢視探索Apache資料庫
- 普通檢視和物化檢視的區別
- oracle物化檢視日誌系列(一)Oracle
- 資料庫鏈、物化檢視、高階複製方面資料庫
- 10G物化檢視PCT快速重新整理不再需要物化檢視日誌(一)
- 用exp、imp遷移包含物化檢視日誌的資料