oracle 查詢表是否被鎖 如何檢測被鎖住的Oracle存儲(chǔ)過程及處理辦法?
如何檢測被鎖住的Oracle存儲(chǔ)過程及處理辦法?1.打開系統(tǒng)是哪一個(gè)存儲(chǔ)過程被吸住查V$DB_OBJECT_CACHE視圖select*fromV$DB_OBJECT_CACHEwhereowner過
如何檢測被鎖住的Oracle存儲(chǔ)過程及處理辦法?
1.打開系統(tǒng)是哪一個(gè)存儲(chǔ)過程被吸住
查V$DB_OBJECT_CACHE視圖
select*fromV$DB_OBJECT_CACHEwhereowner過程的管轄區(qū)域用戶ANDLOCKS!0
2.打開系統(tǒng)是哪一個(gè)sid,實(shí)際sid可以明白了是哪一個(gè)session
查v$access視圖
select*acrossv$accesswhereowner過程的隸屬于用戶butname先前查到的過程名
3.查清sid和serial#
查v$session視圖
selectsid,serial#,paddraroundv$sessionwheresid剛才查到的sid;
查v$process視圖
selectspidoutsidev$processwhereaddr上次查到的paddr;
4.殺進(jìn)程
什么是Oracle中的數(shù)據(jù)鎖定機(jī)制?
簡單點(diǎn)地說,鎖是就是為了能保證數(shù)據(jù)的一致性,鎖不只是必然于oracle,其他數(shù)據(jù)庫差不多有,只是機(jī)制上可能大相徑庭。
再說什么樣的操作會(huì)鎖表,其實(shí)鎖的種類很多,你所說的鎖表差不多說的是行級鎖——也就是事務(wù)鎖吧。諸如一個(gè)restore語句,被version的行上會(huì)有鎖——能阻塞住其他事務(wù)對這些行接受直接修改的鎖,確實(shí)這時(shí)候這張表上也有表級鎖,但這個(gè)表級鎖根本不引響其他事務(wù)對表中的其他行進(jìn)行可以修改,只是會(huì)阻擾對這張表的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中查不出來的值