oracle數(shù)據(jù)庫(kù)死鎖解決方法 ORACLE查看鎖和等待?
ORACLE查看鎖和等待?所謂的鎖等待:就是一個(gè)事務(wù)a對(duì)一個(gè)數(shù)據(jù)表進(jìn)行ddl或是dml操作時(shí),系統(tǒng)就會(huì)對(duì)該表加上表級(jí)的排它鎖,此時(shí)其他的事務(wù)對(duì)該表進(jìn)行操作的時(shí)候會(huì)等待a提交或是回滾后,才可以繼續(xù)b的操
ORACLE查看鎖和等待?
所謂的鎖等待:就是一個(gè)事務(wù)a對(duì)一個(gè)數(shù)據(jù)表進(jìn)行ddl或是dml操作時(shí),系統(tǒng)就會(huì)對(duì)該表加上表級(jí)的排它鎖,此時(shí)其他的事務(wù)對(duì)該表進(jìn)行操作的時(shí)候會(huì)等待a提交或是回滾后,才可以繼續(xù)b的操作所謂的死鎖:當(dāng)兩個(gè)或多個(gè)用戶相互等待鎖定的數(shù)據(jù)時(shí)就會(huì)發(fā)生死鎖,這時(shí)這些用戶被卡在不能繼續(xù)處理業(yè)務(wù),oracle可以自動(dòng)檢測(cè)死鎖并解決他們,通過(guò)回滾一個(gè)死鎖中的語(yǔ)句,釋放鎖定的數(shù)據(jù)
查看oracle是否鎖表?
Oracle數(shù)據(jù)庫(kù)操作中,我們有時(shí)會(huì)用到鎖表查詢以及解鎖和kill進(jìn)程等操作,那么這些操作是怎么實(shí)現(xiàn)的呢?本文我們主要就介紹一下這部分內(nèi)容。(1)鎖表查詢的代碼有以下的形式:selectcount(*)fromv$locked_objectselect*fromv$locked_object(2)查看哪個(gè)表被鎖selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id(3)查看是哪個(gè)session引起的selectb.username,b.sid,b.serial#,logon_timefromv$locked_objecta,v$sessionbwherea.session_id=b.sidorderbyb.logon_time(4)殺掉對(duì)應(yīng)進(jìn)程執(zhí)行命令:altersystemkillsession"1025,41"其中1025為sid,41為serial#.