亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle數(shù)據(jù)庫(kù)表被鎖如何查詢和解鎖詳解

 更新時(shí)間:2023年03月08日 09:33:05   作者:被生活耽誤的旅行者  
作為一個(gè)IT技術(shù)人員,可能經(jīng)常遇到在使用Oracle數(shù)據(jù)時(shí),由于操作不當(dāng)導(dǎo)致數(shù)據(jù)庫(kù)鎖表,從而影響項(xiàng)目正常使用,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)表被鎖如何查詢和解鎖的相關(guān)資料,需要的朋友可以參考下

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)文章

最新評(píng)論