国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

說(shuō)一說(shuō)Oracle庫(kù)的Hang的特點(diǎn)和幾點(diǎn)建議

2024-08-29 13:42:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
有些時(shí)侯,我當(dāng)然指的是非常少的情況下,我們會(huì)感覺(jué)我們的庫(kù)”Hang”了,加了隱號(hào)的意思是說(shuō)有時(shí)真的是Hang了,有一些則不是,是由于性能的問(wèn)題引起的。 我碰到過(guò)幾次Hang的情況,結(jié)合著網(wǎng)上一些文章,把可能的原因、當(dāng)時(shí)我們應(yīng)該做的一些操作進(jìn)行了如下的總結(jié),不對(duì)的地方大家可以發(fā)Mail給我:qiuyb@21cn.com。
  
  一、數(shù)據(jù)庫(kù)Hang時(shí)可能的現(xiàn)象
  1、最直觀的是你的大部分的業(yè)務(wù)操作,比如說(shuō)一個(gè)查詢都使用好長(zhǎng)的時(shí)間,或根本就返回不出結(jié)果。這和簡(jiǎn)單那種鎖表是有區(qū)別的。
  
  2、在操作系統(tǒng)上用Hp-unix用glance、Aix用nmon及用sar做監(jiān)測(cè)會(huì)出現(xiàn)系統(tǒng)空閑的假象,表面看起來(lái)系統(tǒng)很閑,實(shí)際上系統(tǒng)已經(jīng)Hang了。
  
  3、查v$session_wait會(huì)出現(xiàn)大量的”latch free”、”enqueue”、” free buffer waits”等等待事件,有時(shí)后臺(tái)會(huì)出現(xiàn)大量的.trc文件,另外需要觀注一下$Oracle_HOME/rdbms/log這個(gè)位置,有一些時(shí)侯trace文件會(huì)生成到這里。
  
  二、Oracle庫(kù)Hang時(shí)一些有用的操作和查詢
  1、假如要尋求Oracle的技術(shù)支持,我們需要dump一下Oracle的systemstate,操作如下
  SQL>conn / as sysdba;
  SQL> alter session set events 'immediate trace name SYSTEMSTATE level 10';
  需要等幾分鐘的時(shí)間,這時(shí)在init.ora中所設(shè)置的user_dump_dest所標(biāo)識(shí)的位置就可以找到這個(gè).trc文件,一般比較大。
  
  2、捕捉一些視圖的狀態(tài)值
  SQL>conn / as sysdba;
  SQL>set linesize 500
  SQL>set pagesize 0
  SQL>spool v_views.txt
  SQL> SELECT * FROM v$parameter;
  SQL>SELECT class, value, name FROM v$sysstat;
  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; --隔幾秒重復(fù)執(zhí)行3次。
  SQL>spool off
  
  3、有條件的話用statspack生成了一個(gè)Report,假如你對(duì)statspach不熟悉,可以參照http://www.itpub.net/showthread.php?s=&threadid=144448這個(gè)鏈接。
  
  三、產(chǎn)生Hang可能的幾個(gè)原因
  1、開(kāi)歸檔的情況下,歸檔位置所在的文件系統(tǒng)滿了,這時(shí)lgwr就會(huì)等待歸檔進(jìn)程的完成,DML寫不了日志,都處于等待的狀態(tài)。
  
  2、在HP的系統(tǒng)開(kāi)異步Io時(shí),沒(méi)為dba的組設(shè)置MLOCK權(quán)限。正常來(lái)說(shuō)Oracle的啟動(dòng)是會(huì)報(bào)錯(cuò)的,可是有些時(shí)侯比如Oracle8.1.6的版本就不報(bào)錯(cuò)啟動(dòng),但是此時(shí)的異步Io是有問(wèn)題的,仔細(xì)查看你會(huì)在$ORACLE_HOME/rdbms/log看到大量的.trc文件。這種情形引的Hang我碰到過(guò)。
  
  3、由于異常進(jìn)程引起的,我所說(shuō)的是那些占用系統(tǒng)資源(cpu,memory)非凡大的進(jìn)程,這些進(jìn)程一般占用cpu會(huì)達(dá)到90%以上,相對(duì)其它的進(jìn)程比較突出。可以通過(guò)hp-unix的glance、topas,IBM的nmod,topas,ps等工具進(jìn)行監(jiān)測(cè)。
  
  4、由于主機(jī)系統(tǒng)、陣列的某方面的瓶頸引起的,在實(shí)際中最普遍的應(yīng)該是Io的問(wèn)題,比如IO方面有瓶頸,則dbwr、lgwr就會(huì)引” free buffer waits”、” log buffer space”等一系列的等待事件,此時(shí)是性能的問(wèn)題,感覺(jué)起來(lái)像Hang。
  
  5、也有bug的因素,我的庫(kù)都是最新的補(bǔ)丁,這方面的問(wèn)題還沒(méi)碰到過(guò)。
  
  四、幾點(diǎn)處理建議
  當(dāng)?shù)玫絆racle的庫(kù)奇慢或Hang時(shí)保持冷靜的頭腦很重要的,可以按如下的方法進(jìn)行一些處理:
  
  1、首先要到操作系統(tǒng)上去,用glance等工具進(jìn)行一下觀察,看一下cpu、內(nèi)存、交換區(qū)、磁盤的繁忙程度與平時(shí)是不是相似的,同時(shí)看一看有沒(méi)有占系統(tǒng)資源非凡大的進(jìn)程,有些時(shí)侯是這些進(jìn)程引起的,通過(guò)v$PRocess和v$session兩個(gè)視圖找到這Oracle進(jìn)程的sid,serial#,把它用Alter system kill session ‘sid,serial#’;殺掉就行了。假如平時(shí)同樣的時(shí)段你的磁盤的繁忙程度是95%,而些時(shí)它為20%,當(dāng)然是假設(shè)了,說(shuō)明Oracle的庫(kù)沒(méi)準(zhǔn)真的hang了。
  
  2、時(shí)間來(lái)得及的話執(zhí)行一下”二”中的語(yǔ)句是很必要的,這樣可以把這些信息提交給Oracle的supporter,讓你們給你分析一下,查一下原因。
  
  3、假如你的庫(kù)開(kāi)歸檔了,出現(xiàn)Hang的時(shí)侯一定要看一下歸檔日志的文件系統(tǒng)是不是滿了,做一個(gè)完備一些的網(wǎng)管系統(tǒng)是很必要的。
  
  4、在HP系統(tǒng)上打開(kāi)異步IO時(shí)一定不要忘記為dba這個(gè)組加上MLOCK的權(quán)限,我就吃過(guò)這個(gè)虧。
  
  5、時(shí)常的觀注一下v$session_wait或用statspack進(jìn)行觀注一下等待事件,一般IO相關(guān)的事件較多,為Oracle打開(kāi)異步IO、多加幾個(gè)寫進(jìn)程及為Oracle數(shù)據(jù)文件所用的raw device使用條帶都是很必要的。與應(yīng)用的開(kāi)發(fā)商交流也很重要,沒(méi)準(zhǔn)最近新上的一個(gè)應(yīng)用就特耗IO或特占CPU資源。
  
  6、盡量要使用比較穩(wěn)定的Oracle的版本,比如Oracle8.1.7.4及Oracel9.2.0.4(最新為 9.2.0.5)都很穩(wěn)定的,可以少去好多的麻煩。
    


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙湾县| 湄潭县| 佛冈县| 鄂尔多斯市| 荣成市| 淅川县| 瑞丽市| 宾川县| 申扎县| 夹江县| 浏阳市| 博白县| 赫章县| 安吉县| 安顺市| 黄浦区| 山阴县| 苗栗县| 双流县| 白山市| 萨迦县| 胶州市| 唐山市| 昌乐县| 兴宁市| 珲春市| 南岸区| 商洛市| 沧州市| 星座| 呼玛县| 丹江口市| 汕尾市| 周宁县| 林甸县| 开远市| 奎屯市| 河间市| 长子县| 抚松县| 新昌县|