您好,登錄后才能下訂單哦!
這篇文章主要講解了“Oracle數據庫失效對象怎么處理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Oracle數據庫失效對象怎么處理”吧!
近期對數據庫進行巡檢,發現數據庫業務用戶(非 SYS/Public
)下存在失效對象。對失效對象進行分析,主要包括失效的視圖、物化視圖、函數、包、觸發器等。
思考:
基于以下原因,建議對失效對象進行處理:
1、通過失效的對象,可能能夠反推發現業務軟件問題(業務系統功能太多,可能存在測試不充分的問題);
2、如果失效對象太多,業務又頻繁調用的話,擔心影響數據庫性能(未進行測試,個人想法,如有錯誤請大家指正);
處理方式:
1、先搜索發現失效對象(在sys用戶下執行)
select owner, object_name, object_type, status from dba_objects t where status='INVALID' order by t.owner,t.object_type;
2、對失效對象自動生成重編譯語句,進行重編譯
下面是為視圖、函數、物化視圖、包、觸發器的生成語句。
--自動生成視圖重新編譯語句 select owner, object_name, object_type, status ,'alter view ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='VIEW' order by t.owner,t.object_type; --自動生成函數重新編譯語句 select owner, object_name, object_type, status ,'alter FUNCTION ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='FUNCTION' order by t.owner,t.object_type; --自動生成視物化圖重新編譯語句 select owner, object_name, object_type, status ,'alter MATERIALIZED VIEW ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='MATERIALIZED VIEW' order by t.owner,t.object_type; --自動生成包重新編譯語句 select owner, object_name, object_type, status ,'alter PACKAGE ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='PACKAGE BODY' order by t.owner,t.object_type; --自動生成觸發器重新編譯語句 select owner, object_name, object_type, status ,'alter TRIGGER ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='TRIGGER' order by t.owner,t.object_type;
生成語句后復制處理批量執行即可
3、重新編譯應該會解決掉一部分的失效對象,但是仍然會有部分對象無法通過重新編譯解決。對于這部分對象,需要進行人工的逐個分析,現場可以確認的進行確認處理(有用則修改,無用則刪除),現場不能確認的可以和研發確認,最終完成對失效對象處理的目的。
如果最終仍有部分無人可以確認,建議先暫時保留即可。
感謝各位的閱讀,以上就是“Oracle數據庫失效對象怎么處理”的內容了,經過本文的學習后,相信大家對Oracle數據庫失效對象怎么處理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。