刷新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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章