Oracle數(shù)據(jù)庫(kù)表被鎖如何查詢和解鎖詳解
1、鎖表原因
可能是修改表中的數(shù)據(jù),忘了提交事務(wù)會(huì)造成鎖表。 Oracle數(shù)據(jù)庫(kù)操作中,我們有時(shí)會(huì)用到鎖表查詢以及解鎖和kill進(jìn)程等操作。
2、鎖表查詢的代碼有以下的形式
select count(*) from v$locked_object; select * from v$locked_object;
3、查看哪個(gè)表被鎖
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;
- OWNER :數(shù)據(jù)表的所有者用戶
- OBJECT_NAME: 被鎖住的表名
- SESSION_ID: 會(huì)話ID
- LOCKED_MODE: 鎖級(jí)別
鎖級(jí)別分為6級(jí):
- 1級(jí)鎖有:Select 2級(jí)鎖有:Select for update,Lock For Update,Lock Row Share
- 3級(jí)鎖有:Insert, Update, Delete, Lock Row Exclusive
- 4級(jí)鎖有:Create Index,Lock Share
- 5級(jí)鎖有:Lock Share Row Exclusive
- 6級(jí)鎖有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive
4、查看是哪個(gè)session引起的
select a.OS_USER_NAME, c.owner, c.object_name, b.sid, b.serial#, logon_time from v$locked_object a, v$session b, dba_objects c where a.session_id = b.sid and a.object_id = c.object_id order by b.logon_time;
5、殺掉對(duì)應(yīng)進(jìn)程
alter system kill session '1025,41';
需要用戶有管理員的權(quán)限操作,其中1025為sid,41為serial#
如果有ora-00031錯(cuò)誤,則在后面加immediate;
alter system kill session '1025,41' immediate;
6、如何避免鎖表
常見(jiàn)問(wèn)題是用戶更新操作沒(méi)有提交事務(wù),
所以:如果單獨(dú)更新操作,需要寫(xiě)2個(gè)操作 SQL,一個(gè)是更新操作SQL語(yǔ)句,另一個(gè)是commit語(yǔ)句提交事務(wù)。
總結(jié)
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)表被鎖如何查詢和解鎖的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫(kù)表被鎖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享
這篇文章主要介紹了Oracle中實(shí)現(xiàn)MySQL show index from table命令SQL腳本分享,本文只是模擬了Mysql中的show index from table命令,需要的朋友可以參考下2014-10-10Oracle 低權(quán)限數(shù)據(jù)庫(kù)賬戶得到 OS 訪問(wèn)權(quán)限 提權(quán)利用
大概意思就是說(shuō),如果 ORACLE 服務(wù)是用 administrator 賬戶啟動(dòng)的,你只要有一個(gè)具有 resource 和 connect 權(quán)限的數(shù)據(jù)庫(kù)賬戶,就能利用 metasploit 的 smbrelay 功能,本地搭建一個(gè) SMB 欺騙服務(wù)器, 來(lái)得到系統(tǒng)的訪問(wèn)權(quán)限。2009-06-06Oracle Portal及其門戶網(wǎng)站開(kāi)發(fā)概述
Oracle Portal及其門戶網(wǎng)站開(kāi)發(fā)概述...2007-03-03Oracle 跨庫(kù) 查詢 復(fù)制表數(shù)據(jù) 分布式查詢介紹
這篇文章主要介紹了Oracle 跨庫(kù) 查詢 復(fù)制表數(shù)據(jù) 分布式查詢的相關(guān)資料,需要的朋友可以參考下2014-10-10Oracle數(shù)據(jù)遠(yuǎn)程連接的四種設(shè)置方法和注意事項(xiàng)
Oracle數(shù)據(jù)庫(kù)的遠(yuǎn)程連接可以通過(guò)多種方式來(lái)實(shí)現(xiàn),本文我們主要介紹四種遠(yuǎn)程連接的方法和注意事項(xiàng),并通過(guò)示例來(lái)說(shuō)明,接下來(lái)我們就開(kāi)始介紹2014-04-04