物化視圖日誌過大分析處理

背景:

巡檢發現數據庫有張表超過200G,通過名稱判斷是某張表的物化視圖日誌,表大小是200M左右,每小時刷新一次物化視圖,正常刷新完成會自動清理物化視圖日誌,現在要根據現象進行排查。

通過分析Oracle系統視圖,我們發現當前物化視圖(MV_ORG_PERSON)定義語句用到refresh force,此選項提供fast和complete兩種選擇,當無法做快速刷新時會自動選擇全量刷新;系統視圖dba_mviews中last_refresh_type字段值顯示爲COMPLETE,證明上次物化視圖爲全量刷新,結合dba_mview_analysis中的fullrefreshtim字段,發現一次全量刷新需要7秒左右,檢查物化視圖日誌mlog$_table_name及mlog$_table_name1中的snaptime$$字段,存在大量時間爲4000/1/1的值,再檢查dba_base_table_mviews中的MVIEW_LAST_REFRESH_TIME字段,時間爲2017/2/21,這代表從2017/2/21開始物化視圖日誌中的數據並未被物化視圖用到,因此得出以下結論:

此物化視圖日誌並未對當前物化視圖提供快速刷新功能,導致自動選擇全量刷新;

註釋:dba_base_table_mviews 此視圖提供使用物化視圖日誌進行快速刷新的時間,必須同時滿足有創建物化視圖日誌並使用了快速刷新兩個條件纔會更新MVIEW_LAST_REFRESH_TIME字段的值

 

準備對物化視圖日誌mlog$_table_name進行清理,操作步驟如下:

1、刪除物化視圖日誌

Drop materialized view log on table_name;

2、手動刷新物化視圖,檢查狀態

3、業務人員檢查業務狀態

 

應急預案

         如果刪除物化視圖日誌後對物化視圖出現影響,手動添加物化視圖日誌,並重建物化視圖,根據系統視圖(dba_mview_analysis)提供時間,一次全量刷新在7秒鐘左右。

         以下爲應急預案步驟:

1、create materialized view log on table_name;

2、drop materialized view MV_table_name;

3、物化視圖重建語句

4、業務人員檢查業務狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章