下午**遷移,更新資料庫記錄時for update語句無法執行,資料庫被鎖,kill掉幾個程序搞定。
oracle資料庫操作中,我們有時會用到鎖表查詢以及解鎖和kill程序等操作,那麼這些操作是怎麼實現的呢?簡要介紹一下。
鎖表查詢的**有以下的形式:
selectcount(*) from
v$locked_object;
select
*from v$locked_object;
檢視哪個表被鎖
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;
檢視是哪個session引起的
selectb.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;
殺掉對應程序
執行命令:
alter system kill session'1025,41
';
其中1025為sid,41為serial#。
Oracle資料庫查詢鎖表及解鎖
運算元據庫的過程中,多使用者對同一條資料或同乙個表進行操作,且乙個使用者的操作未提交 一 查詢哪些表被鎖以及檢視鎖表得會話及作業系統程序id 其中locked mode為鎖的級別,spid為資料庫所在作業系統的程序idselect c.sid,c.serial c.username,c.osuser...
Oracle資料庫查詢鎖表及解鎖
一 查詢哪些表被鎖以及檢視鎖表得會話及作業系統程序id 其中locked mode為鎖的級別,spid為資料庫所在作業系統的程序idselect c.sid,c.serial c.username,c.osuser,b.owner,b.object name a.locked mode,p.spid...
Oracle資料庫表被鎖與解鎖
本人小菜鳥,今天在專案中遇到了乙個令我費解的問題,就是我之前寫的運算元據的方法全部都不能用了,例如儲存 修改 刪除全部都不能用了 打斷點進去一步一步走發現在運算元據的時候出的問題,後台也不會報錯,糾結了好長時間啊,中午吃飯的時候討論到這個問題,大神一語道破其中奧妙啊,他說可能是資料庫表鎖死啦。哎呦喂...