oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法
1、oracle數(shù)據(jù)庫(kù)表在操作insert update 、delete 時(shí)忘記提交事務(wù)或者回滾,就會(huì)發(fā)生鎖表
2、鎖表的原理是 數(shù)據(jù)庫(kù)使用獨(dú)占式封鎖機(jī)制,當(dāng)執(zhí)行上面的語(yǔ)句時(shí),對(duì)表進(jìn)行鎖住,直到發(fā)生commite 或者 回滾 或者退出數(shù)據(jù)庫(kù)用戶
鎖表的原因
第一、 A程序執(zhí)行了對(duì) tableA 的 insert ,并還未 commite時(shí),B程序也對(duì)tableA 進(jìn)行insert 則此時(shí)會(huì)發(fā)生資源正忙的異常 就是鎖表
第二、鎖表常發(fā)生于并發(fā)而不是并行(并行時(shí),一個(gè)線程操作數(shù)據(jù)庫(kù)時(shí),另一個(gè)線程是不能操作數(shù)據(jù)庫(kù)的,cpu 和i/o 分配原則)
當(dāng)發(fā)生鎖表后,我們應(yīng)當(dāng)kill 掉鎖表的sql進(jìn)程,這樣就可以解除鎖表;
解決方法:
第一步:找出被鎖表對(duì)應(yīng)的session_id
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;
第二步:根據(jù)上一步查出來(lái)的session_id找出對(duì)應(yīng)的SERIAL#
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;
第三步(解鎖):殺掉對(duì)應(yīng)的進(jìn)程
ALTER SYSTEM KILL SESSION 'session_id,SERIAL#';
第四步:完事!
到此這篇關(guān)于oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法的文章就介紹到這了,更多相關(guān)oracle數(shù)據(jù)庫(kù)鎖表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)庫(kù)實(shí)現(xiàn)主鍵字段自增的常用方法
在 Oracle 數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)主鍵字段的自增功能對(duì)于確保數(shù)據(jù)的唯一性和簡(jiǎn)化數(shù)據(jù)插入操作非常重要,本文將介紹如何在 Oracle 數(shù)據(jù)庫(kù)中實(shí)現(xiàn)主鍵字段的自增,提供幾種常見的方法供參考2023-10-10
Oracle生成不重復(fù)票號(hào)與LPAD,RPAD與NEXTVAL函數(shù)解析
這篇文章主要介紹了Oracle生成不重復(fù)票號(hào)與LPAD,RPAD與NEXTVAL函數(shù)解析,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10
oracle?11g導(dǎo)入\導(dǎo)出(expdp?impdp)之導(dǎo)入過(guò)程
導(dǎo)出需使用SEC.DMP格式,無(wú)分號(hào);建立expdir目錄(E:/exp)并確保存在;導(dǎo)入在cmd下執(zhí)行,需sys用戶權(quán)限;若需修改TEST用戶密碼,須通過(guò)sysdba登錄sys用戶操作2025-09-09
Oracle基礎(chǔ)學(xué)習(xí)之簡(jiǎn)單查詢和限定查詢
相信對(duì)于每個(gè)剛接觸數(shù)據(jù)庫(kù)的朋友們來(lái)說(shuō),查詢是首先要學(xué)會(huì)的,本文主要給大家介紹了Oracle中的簡(jiǎn)單查詢和限定查詢,文中通過(guò)示例代碼與文字說(shuō)明給大家介紹的很詳細(xì),相信對(duì)大家的的理解和學(xué)習(xí)會(huì)很有幫助,下面感興趣的朋友們一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式
今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Oracle數(shù)據(jù)庫(kù)失效對(duì)象處理詳情
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)失效對(duì)象處理,數(shù)據(jù)庫(kù)業(yè)務(wù)用戶(非 SYS/Public)下存在失效對(duì)象。對(duì)失效對(duì)象進(jìn)行分析,主要包括失效的視圖、物化視圖、函數(shù)、包、觸發(fā)器等,下面帶著些許了解一起深入學(xué)習(xí)下面文章學(xué)習(xí)內(nèi)容吧2021-10-10
數(shù)據(jù)庫(kù)oracle用戶密碼過(guò)期查詢及解決方案
這篇文章主要介紹了如何處理ORACLE數(shù)據(jù)庫(kù)用戶密碼過(guò)期和修改密碼期限的問(wèn)題,包括創(chuàng)建用戶、賦予權(quán)限、修改密碼、解鎖用戶和設(shè)置密碼期限,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
oracle中的ID號(hào)實(shí)現(xiàn)自增長(zhǎng)的方法
這篇文章主要介紹了oracle中的ID號(hào)如何實(shí)現(xiàn)自增長(zhǎng),利用序列產(chǎn)生主鍵值,需要的朋友可以參考下2014-05-05
Oracle進(jìn)階DECODE函數(shù)使用詳解
這篇文章介紹了Oracle進(jìn)階DECODE函數(shù)的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12

