刷新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';


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3