zoukankan      html  css  js  c++  java
  • Oracle库的Hang

      起原:网海拾贝




    一、数据库Hang时可能的情形
    1、最直观观的是你的大局部的营业操纵,好比说一个查询都运用好长的工夫,或基础就前往不出成就。这和复杂那种锁表是有区其余。
    2、在操纵零碎上用Hp-unix用glance、Aix用nmon及用sar做监测会出现零碎余暇的假象,外面看起来零碎很闲,实际上零碎曾经Hang了。
    3、查v$session_wait会出现少量的”latch free”、”enqueue”、” free buffer waits”等等待事情,有时后台会出现少量的.trc文件,其余需求观观注一下$ORACLE_HOME/rdbms/log这个地位,有一些时侯trace文件会天生到这里。
    二、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;
    SQL>SELECT >SQL>SELECT sid, id1, id2, type, lmode, request FROM v$lock; 
    SQL>SELECT l.latch#, n.name, h.pid, l.gets, l.misses, l.immediate_gets, l.immediate_misses, l.sleeps FROM v$latchname n, v$latchholder h, v$latch l WHERE l.latch# = n.latch# AND l.addr = h.laddr( ); 
    SQL>SELECT * FROM v$session_wait ORDER BY sid;  --隔几秒反复实施3次。
    SQL>spool off
    3、有条件的话用statspack天生了一个Report,要是你对statspach不熟习,可以参照http://www.itpub.net/showthread.php?s=&threadid=144448这个链接。
    三、产生Hang可能的几个缘由
    1、开归档的情形下,归档地位所在的文件零碎满了,这时lgwr就会等待归档进程的完成,DML写不了日志,都处于等待的形态。
    2、在HP的零碎开异步Io时,没为dba的组设置MLOCK权限。正常来说Oracle的启动是会报错的,但是有些时侯好比Oracle8.1.6的版本就不报错启动,但是此时的异步Io是有成就的,过细检察你会在$ORACLE_HOME/rdbms/log看到少量的.trc文件。这种情形引的Hang我遇到过。
    3、由于极度进程惹起的,我所说的是那些占用零碎资源(CPU,memory)格外大的进程,这些进程一样通俗占用cpu会达到90%以上,绝对其余的进程比较突出。可以经过议定hp-unix的glance、topas,IBM的nmod,topas,ps等对象进行监测。
    4、由于主机零碎、阵列的某方面的瓶颈惹起的,在实际中最普遍的应该是Io的成就,好比IO方面有瓶颈,则dbwr、lgwr就会引” free buffer waits”、” log buffer space”等一系列的等待事情,此时是成果的成就,认为起来像Hang。
    5、也有bug的成分,我的库都是最新的补丁,这方面的成就还没遇到过。
    四、几点处置惩罚建议
    当失掉Oracle的库奇慢或Hang时对峙岑寂的思维很紧张的,可以按如下的体式格局进行一些处置惩罚:
    1、首先要到操纵零碎上去,用glance等对象进行一下考查,看一下cpu、内存、交换区、磁盘的忙碌程度与平常是不是近似的,同时看一看有没有占零碎资源格外大的进程,有些时侯是这些进程惹起的,经过议定v$process和v$session两个视图找到这Oracle进程的sid,serial#,把它用Alter system kill session ‘sid,serial#’;杀失就行了。要是平常极度的时段你的磁盘的忙碌程度是95%,而些时它为20%,固然是假定了,声名');Oracle的库没准真的hang了。
    2、工夫来得及的话实施一下”二”中的语句是很需要的,这样可以把这些信息提交给Oracle的supporter,让你们给你分析一下,查一下缘由。
    3、要是你的库开归档了,出现Hang的时侯肯定要看一下归档日志的文件零碎是不是满了,做一个完备一些的网管零碎是很需要的。
    4、在HP零碎上翻开异步IO时肯定不要忘掉为dba这个组加上MLOCK的权限,我就吃过这个亏。
    5、时常的观观注一下v$session_wait或用statspack进行观观注一上等待事情,一样通俗IO关系的事情较多,为Oracle翻开异步IO、多加几个写进程及为Oracle数据文件所用的raw device运用条带都是很需要的。与运用的开发商交换也很紧张,没准最近新上的一个运用就特耗IO或特占CPU资源。
    6、虽然要运用比较清闲的Oracle的版本,好比Oracle8.1.7.4及Oracel9.2.0.4(最新为 9.2.0.5)都很清闲的,可以少去许多若干好多的费事。




    版权声明: 原创作品,答应转载,转载时请务必以超链接情势标明文章 原始情由 、作者信息和本声明。不然将追究执法责任。

  • 相关阅读:
    ZipArchive 的使用
    Bootstrap使用心得
    SQL SERVER 级联删除
    ASP.NET 使用C#代码设置页面元素中的样式或属性
    GDI+中发生一般性错误之文件被占用
    .Net 中资源的使用方式
    一张图全解析个性化邮件那么重要
    看天猫EDM营销学企业EDM营销
    细数EDM营销中存在的两大盲点
    如何进行EDM邮件内容的撰写
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976037.html
Copyright © 2011-2022 走看看