刷新Oracle緩存

    8月22號遇到一個單位在導入分配的分錄時,出現行鎖定的錯誤。終止被鎖Oracle進程,進程爲KILLED狀態,但很長時間數據庫鎖依然還存在。執行OS進程KILL,數據庫鎖還未釋放。後來此問題由同事解決,瞭解到是強制執行了強制刷新數據庫緩存操作。(刷新數據庫緩存會短時間內會影響數據庫運行效率)
原因分析:
   在殺掉了相關數據庫進程和OS進程,數據庫鎖還存在,這是因爲Cache的影響,需要手動刷新Buffer Cache,以促使Oracle重新執行物理訪問。

解決辦法:

以下三條語句可以清除cache:
1、在Oracle9i裏,Oracle提供了一個內部事件,用以強制刷新Buffer Cache,語法爲:
    alter session set events 'immediate trace name flush_cache level 1';
 
2、針對session,語法爲:
alter session set events = 'immediate trace name flush_cache';
 
 
3、針對整個系統,語法爲:
alter system set events = 'immediate trace name flush_cache';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章