有些时侯,我当然指的是非常少的情况下,我们会感觉我们的库”hang”了,加了隐号的意思是说有时真的是hang了,有一些则不是,是由于性能的问题引起的。我遇到过几次hang的情况,结合着网上一些文章,把可能的原因、当时我们应该做的一些操作进行了如下的总结,不对的地方大家可以发mail给我:qiuyb@21cn.com。
1、最直观的是你的大部分的业务操作,比如说一个查询都使用好长的时间,或根本就返回不出结果。这与简单那种锁表是有区别的。 【相关文章:StrutsTest使用简明手册】
一、数据库hang时可能的现象 【扩展阅读:.NET客户端应用程序:.NET应用程序】
3、查v$session_wait会出现大量的”latch free”、”enqueue”、” free buffer waits”等等待事件,有时后台会出现大量的.trc文件,另外需要观注一下$oracle_home/rdbms/log这个位置,有一些时侯trace文件会生成到这里。 【扩展信息:JCoverage使用简明手册】
2、在操作系统上用hp-unix用glance、aix用nmon及用sar做监测会出现系统空闲的假象,表面看起来系统很闲,实际上系统已经hang了。
二、oracle库hang时一些有用的操作与查询
1、如果要寻求oracle的技术支持,我们需要dump一下oracle的systemstate,操作如下
sql>conn / as sysdba; sql> alter session set events ´immediate trace name systemstate level 10´; 需要等几分钟的时间,这时在init<sid>.ora中所设置的user_dump_dest所标识的位置就可以找到这个.trc文件,一般比较大。2、捕获一些视图的状态值
sql>conn / as sysdba; sql>set linesize 500 sql>set pagesize 0 sql>spool v_views.txt sql> select * from v$parameter; ... 下一页