oracle 查詢表是否被鎖 如何檢測被鎖住的Oracle存儲過程及處理辦法?
如何檢測被鎖住的Oracle存儲過程及處理辦法?1.打開系統(tǒng)是哪一個存儲過程被吸住查V$DB_OBJECT_CACHE視圖select*fromV$DB_OBJECT_CACHEwhereowner過
如何檢測被鎖住的Oracle存儲過程及處理辦法?
1.打開系統(tǒng)是哪一個存儲過程被吸住
查V$DB_OBJECT_CACHE視圖
select*fromV$DB_OBJECT_CACHEwhereowner過程的管轄區(qū)域用戶ANDLOCKS!0
2.打開系統(tǒng)是哪一個sid,實際sid可以明白了是哪一個session
查v$access視圖
select*acrossv$accesswhereowner過程的隸屬于用戶butname先前查到的過程名
3.查清sid和serial#
查v$session視圖
selectsid,serial#,paddraroundv$sessionwheresid剛才查到的sid;
查v$process視圖
selectspidoutsidev$processwhereaddr上次查到的paddr;
4.殺進程
什么是Oracle中的數(shù)據(jù)鎖定機制?
簡單點地說,鎖是就是為了能保證數(shù)據(jù)的一致性,鎖不只是必然于oracle,其他數(shù)據(jù)庫差不多有,只是機制上可能大相徑庭。
再說什么樣的操作會鎖表,其實鎖的種類很多,你所說的鎖表差不多說的是行級鎖——也就是事務(wù)鎖吧。諸如一個restore語句,被version的行上會有鎖——能阻塞住其他事務(wù)對這些行接受直接修改的鎖,確實這時候這張表上也有表級鎖,但這個表級鎖根本不引響其他事務(wù)對表中的其他行進行可以修改,只是會阻擾對這張表的DDL不能操作。
orcal數(shù)據(jù)庫表被鎖了怎么解鎖?
--1、一欄數(shù)據(jù)庫鎖,診斷鎖的來源及類型:
SELECTOBJECT_ID,SESSION_ID,LOCKED_MODEaroundV$LOCKED_OBJECT
--2、找到什么數(shù)據(jù)庫的serial#,以備殺掉:
SELECT,,#,T2.LOGON_TIME
aroundV$LOCKED_OBJECTT1,V$SESSION T2WHERE _ID ORDER BY T2.LOGON_TIME
--3、殺死該session
altersystemkillsessionsid,serial#ps:sid,serial#--為步驟2中查不出來的值