Oracle殺掉系統(tǒng)進程的描述 2012-01-18 00:00 中國IT實驗室 佚名 在導(dǎo)入附件表AFFIX的時候,數(shù)據(jù)量很小就1w多條數(shù)據(jù),但是AFFIX中有一個blob的大字段,這就使得查詢起來很慢,因為工作的環(huán)境網(wǎng)絡(luò)特別的不穩(wěn)定,開始導(dǎo)入了大概快一半了,突然網(wǎng)絡(luò)斷了,當時真
2012-01-18 00:00中國IT實驗室佚名
在導(dǎo)入附件表AFFIX的時候,數(shù)據(jù)量很小就1w多條數(shù)據(jù),但是AFFIX中有一個blob的大字段,這就使得查詢起來很慢,因為工作的環(huán)境網(wǎng)絡(luò)特別的不穩(wěn)定,開始導(dǎo)入了大概快一半了,突然網(wǎng)絡(luò)斷了,當時真的很生氣,但是也沒有什么辦法,網(wǎng)絡(luò)好后接著導(dǎo)入此時總是出現(xiàn)導(dǎo)入錯誤、甚至導(dǎo)入了很長時間,數(shù)據(jù)條數(shù)根本沒發(fā)生變化,就是這樣的反反復(fù)復(fù),查看了一下Oracle鎖表的情況:
SELECT OBJECT_NAME, MACHINE, S.SID, S.SERIAL#
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S
WHERE L.OBJECT_ID = O.OBJECT_ID
AND L.SESSION_ID = S.SID;
結(jié)果就看到如下結(jié)果:
果然有表鎖死了,心想kill掉鎖死的表很簡單,命令如下:
alter system kill session '519,10230';
執(zhí)行的時間很長,后來居然出現(xiàn)了下圖的錯誤:
一看就是報錯了,查了一些資料是因為oracle鎖死的表被殺死后,狀態(tài)被標識為“killed”但是鎖定資源很長時間才能得到釋放,有的時候?qū)嵲跊]有別的好的辦法我們就需要重啟數(shù)據(jù)庫了,我的理解是如果等半天或者更長時間的話是可以被釋放的。于是就開始查詢資料、例子,解決辦法如下:
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='519' --被鎖定的SID
此時可以得到 PADDR ,在通過SQL得到:
SELECT SPID FROM V$PROCESS WHERE ADDR='695E3F2C'; --PADDR的值
這個時候就可以直接在系統(tǒng)中把oracle進程殺掉了,可以使用 kill -9 SPID 或者 ORAKILL SID SPID
此時整個操作完成,如果遇到此類問題不能解決大家在一起討論。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com