oracle解除表鎖 oracle經(jīng)常死鎖,鎖定數(shù)據(jù)庫的一些表,導(dǎo)致oracle死鎖的原因一般有那些?
oracle經(jīng)常死鎖,鎖定數(shù)據(jù)庫的一些表,導(dǎo)致oracle死鎖的原因一般有那些?通常只發(fā)生鎖超時,即當(dāng)一個進(jìn)程需要訪問一個數(shù)據(jù)庫表或字段時,另一個程序正在執(zhí)行鎖訪問(如修改數(shù)據(jù)),則進(jìn)程將等待。當(dāng)鎖等
oracle經(jīng)常死鎖,鎖定數(shù)據(jù)庫的一些表,導(dǎo)致oracle死鎖的原因一般有那些?
通常只發(fā)生鎖超時,即當(dāng)一個進(jìn)程需要訪問一個數(shù)據(jù)庫表或字段時,另一個程序正在執(zhí)行鎖訪問(如修改數(shù)據(jù)),則進(jìn)程將等待。當(dāng)鎖等待很長時間后仍未釋放時,將報告系統(tǒng)錯誤并拒絕相應(yīng)的SQL操作。僵局的情況很少。例如,一個進(jìn)程需要訪問兩個資源(數(shù)據(jù)庫表或字段)。在獲取資源時,進(jìn)程將其鎖定,然后等待下一個資源空閑。此時,如果另一個進(jìn)程也需要兩個資源,并且已經(jīng)獲取并鎖定了第二個資源,那么它將處于死鎖狀態(tài),因為當(dāng)前進(jìn)程被鎖定如果第一個資源被固定為等待第二個資源,而另一個進(jìn)程將第二個資源鎖定為等待第一個資源,那么這兩個進(jìn)程將永遠(yuǎn)不會得到滿足。
Erp100。Com
通過下面的語句檢查觸發(fā)鎖表的語句是否正在執(zhí)行,找到執(zhí)行的用戶,然后與相應(yīng)的用戶通信,選擇l.session id sid,s.serial#,l.locked uumode,l.oracle uuusername,s.user#,l.os uuuuu用戶名s.machine,s.terminal,a.sql ext,a.action from v$sqlarea a,v$session s,v$lockeduobject l其中l(wèi).sessionid=s.sid和s.prevsqluaddr=a.address order by sid,s.serial#如果沒有語句鎖定表,則可能是相應(yīng)的表正在執(zhí)行DDL操作,例如添加索引,也可以觸發(fā)鎖表。您可以轉(zhuǎn)到警報日志,查看是否有人正在添加索引