oracle怎么看是否鎖表 oracle鎖表、解鎖的語(yǔ)句?
oracle鎖表、解鎖的語(yǔ)句?一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間不釋放,有時(shí)實(shí)在沒辦法,只好重啟數(shù)據(jù)庫(kù)?,F(xiàn)在提供一種方法解決這種問題,那就是在ORAC
oracle鎖表、解鎖的語(yǔ)句?
一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間不釋放,有時(shí)實(shí)在沒辦法,只好重啟數(shù)據(jù)庫(kù)。現(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級(jí)再殺。
1.下面的語(yǔ)句用來查詢哪些對(duì)象被鎖:selectobject_name,machine,s.sid,s.serial#fromv$locked_objectl,dba_objectso,v$sessionswherel.object_id = o.object_idandl.session_id=s.sid
2.下面的語(yǔ)句用來殺死一個(gè)進(jìn)程:altersystemkillsession"24,111"(其中24,111分別是上面查詢出的sid,serial#)【注】以上兩步,可以通過Oracle的管理控制臺(tái)來執(zhí)行。
3.如果利用上面的命令殺死一個(gè)進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間沒有被釋放,那么可以在os一級(jí)再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語(yǔ)句獲得進(jìn)程(線程)號(hào):selectspid,osuser,s.programfromv$sessions,v$processpwheres.paddr=p.addrands.sid=24(24是上面的sid)4.在OS上殺死這個(gè)進(jìn)程(線程):1)在unix上,用root身份執(zhí)行命令:#kill-912345(即第3步查詢出的spid)2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個(gè)可執(zhí)行命令,語(yǔ)法為:orakillsidthread其中:sid:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名thread:是要?dú)⒌舻木€程號(hào),即第3步查詢出的spid。例:c:>orakillorcl12345
查看oracle是否鎖表之后。然后如果我沒有DBA權(quán)限,怎么殺掉進(jìn)程或者解鎖表?
第一種:SQL>selectsession_idfromv$locked_object49SQL>SELECTsid,serial#,usernameFROMv$sessionwheresid=4949554systemSQL>ALTERSYSTEMKILLSESSION"49,554"第二種:如果用的是客戶端登錄,直接關(guān)掉客戶端就可以了,因?yàn)槟愕目蛻舳艘彩莻€(gè)session普通用戶也可以,因?yàn)槭悄氵@個(gè)用戶開啟這個(gè)進(jìn)程,那么你也可以關(guān)閉這個(gè)進(jìn)程
查看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#.