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