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



相关阅读:
VBS教程:方法-GetSpecialFolder 方法
联合身份标识:使用 WIF 实现 ASP.NET 被动身份验证
既节省空间又提高效率的好方法
php面向对象全攻略 (五) 封装性
Oracle中只更新两张表对应数据的方法
巧妙管理回收站Win7找回误删文件的方法步骤
连接数据库报错ORA-12514
MySQL 存储过程和"Cursor"的使用方法
6个DIV 135或246间隔一秒轮番显示效果
CMD下建立虚拟目录的方法
解析Ajax如何处理响应信息
win2003 原版光盘中增加SAS Raid 驱动实战经验
用dbv和RMAN检查数据文件中的坏块
在VS2005中创建并使用MasterPage
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4