查詢是否鎖表 oracle 怎么查看oracle是否鎖表?
怎么查看oracle是否鎖表?Oracle數(shù)據(jù)庫操作中,我們有時會用到鎖表查詢以及解鎖和kill進程等操作,那么這些操作是怎么實現(xiàn)的呢?本文我們主要就介紹一下這部分內(nèi)容。(1)鎖表查詢的代碼有以下的形
怎么查看oracle是否鎖表?
Oracle數(shù)據(jù)庫操作中,我們有時會用到鎖表查詢以及解鎖和kill進程等操作,那么這些操作是怎么實現(xiàn)的呢?本文我們主要就介紹一下這部分內(nèi)容。(1)鎖表查詢的代碼有以下的形式:select count(*) from v$locked_objectselect * from v$locked_object(2)查看哪個表被鎖select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id(3)查看是哪個session引起的select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time (4)殺掉對應(yīng)進程執(zhí)行命令:alter system kill session"1025,41"其中1025為sid,41為serial#.
查看oracle是否鎖表?
查看哪個表被鎖
selectb.owner,b.object_name,a.session_id,a.locked_mode
fromv$locked_objecta,dba_objectsb
whereb.object_id=a.object_id
查看是哪個session引起的
selectb.username,b.sid,b.serial#,logon_time
fromv$locked_objecta,v$sessionb
wherea.session_id=b.sidorderbyb.logon_time
查詢oracle哪個表被鎖了?
查v$locked_object和dba_ddl_locks這兩個前面是查詢dml鎖的后面是查詢ddl鎖的。然后利用查到的object_id進行關(guān)聯(lián),找到object_name就是表名
oracle數(shù)據(jù)表被鎖是否影響查詢數(shù)據(jù)?
鎖只會對DML語句產(chǎn)生影響,普通的查詢是不會受到影響的,不過如果你的查詢后面添加了forupdate,就會被影響了
查看oracle是否鎖表之后。然后如果我沒有DBA權(quán)限,怎么殺掉進程或者解鎖表?
第一種:SQL>selectsession_idfromv$locked_object49SQL>SELECTsid,serial#,usernameFROMv$sessionwheresid=4949554systemSQL>ALTERSYSTEMKILLSESSION"49,554"第二種:如果用的是客戶端登錄,直接關(guān)掉客戶端就可以了,因為你的客戶端也是個session普通用戶也可以,因為是你這個用戶開啟這個進程,那么你也可以關(guān)閉這個進程