qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          數(shù)據(jù)庫(kù)異常hang住解決

          下午內(nèi)網(wǎng)測(cè)試庫(kù)同事反應(yīng)查詢更新數(shù)據(jù)很慢,有時(shí)甚至表都打不開(kāi),后來(lái)通過(guò)服務(wù)器【linux】的top命令查看了下,cpu和mem占用正常,但wait高達(dá)80%多(下面兩圖顯示的就是問(wèn)題前后觀察EM對(duì)比的截圖,版本是oracle10gR2,EM的效果比oracle11gR2遜色不少哈):
            -------------------------------------->>
            ---------------------------->>
            接著通過(guò)sqldevelpdev客戶端查詢有沒(méi)有鎖等待之類會(huì)話事件,果然有,而且是兩個(gè)session持有TX鎖,然后通過(guò)下面的sql查詢從oracle和linux級(jí)別kill掉了相應(yīng)session,以為風(fēng)波就此平靜,結(jié)果過(guò)了不到一分鐘查詢又出現(xiàn),只不過(guò)這次只有一個(gè)session持有TX鎖,于是就去查找對(duì)應(yīng)的sql_txt,找到后發(fā)現(xiàn)是個(gè)同事寫(xiě)的存儲(chǔ)過(guò)程,定時(shí)任務(wù),當(dāng)時(shí)正在運(yùn)行,讓其確認(rèn)下是不是任務(wù)執(zhí)行出問(wèn)題了,結(jié)果一查,是程序問(wèn)題,造成的死循環(huán),它會(huì)批量發(fā)起會(huì)話,kill一個(gè)后接著又鎖,循環(huán)反復(fù),后來(lái)他改了下程序后重新運(yùn)行,一切恢復(fù)通暢.
          --查詢死鎖
          select sess.sid, sess.serial#,  lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
          from v$locked_object lo, dba_objects ao,v$session sess
          where ao.object_id = lo.object_id and lo.session_id = sess.sid;
          --oracle級(jí)別kill session
          alter system kill session '1627,1';
          alter system kill session '1564,64740';
          --查詢當(dāng)前連接會(huì)話
          select s.value,s.sid,a.username,a.MACHINE from v$sesstat S,v$statname N,v$session A
          where n.statistic#=s.statistic# and name='session pga memory' and s.sid=a.sid and a.sid=1626
          order by s.value;
          --查詢?cè)斐伤梨i的sql語(yǔ)句
          SELECT   a.SID, a.username, s.sql_text FROM v$session a, v$sqltext s
          WHERE a.sql_address = s.address AND a.sql_hash_value = s.hash_value  and a.SID=1626
          ORDER BY a.username, a.SID, s.piece;
          --造成鎖等待的操作內(nèi)容
          begin
          flt_com.p_line_relation_change(:A0,:B0,:C0,:D0,:E0,:ret_errorcode,:ret_errorname);
          end;
          --通過(guò)sid查找pid,進(jìn)而通過(guò)系統(tǒng)級(jí)別kill
          select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=1605;
          --服務(wù)器級(jí)別kill
          kill -9 spid
          --------------------------------over game

          posted on 2014-08-28 10:12 順其自然EVO 閱讀(181) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 金乡县| 铜陵市| 任丘市| 仙居县| 宝丰县| 云霄县| 紫阳县| 济阳县| 白水县| 凌云县| 八宿县| 伊通| 清涧县| 关岭| 呼伦贝尔市| 寻甸| 天水市| 黔南| 景洪市| 山东| 富民县| 蒲江县| 电白县| 辉县市| 唐山市| 安岳县| 东乡县| 奈曼旗| 咸阳市| 富锦市| 东乡族自治县| 徐闻县| 富蕴县| 湖南省| 卓尼县| 临江市| 德江县| 沙雅县| 扎鲁特旗| 江永县| 亚东县|