欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、鎖表原因

可能是修改表中的數(shù)據(jù),忘了提交事務(wù)會造成鎖表。 Oracle數(shù)據(jù)庫操作中,我們有時會用到鎖表查詢以及解鎖和kill進程等操作。

2、鎖表查詢的代碼有以下的形式

select count(*) from v$locked_object;
select * from v$locked_object;

3、查看哪個表被鎖

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: 會話ID
  • LOCKED_MODE: 鎖級別

鎖級別分為6級:

  • 1級鎖有:Select 2級鎖有:Select for update,Lock For Update,Lock Row Share
  • 3級鎖有:Insert, Update, Delete, Lock Row Exclusive
  • 4級鎖有:Create Index,Lock Share
  • 5級鎖有:Lock Share Row Exclusive
  • 6級鎖有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive

4、查看是哪個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、殺掉對應(yīng)進程

alter system kill session '1025,41'; 

需要用戶有管理員的權(quán)限操作,其中1025為sid,41為serial#

如果有ora-00031錯誤,則在后面加immediate;

alter system kill session '1025,41' immediate;

6、如何避免鎖表

常見問題是用戶更新操作沒有提交事務(wù),
所以:如果單獨更新操作,需要寫2個操作 SQL,一個是更新操作SQL語句,另一個是commit語句提交事務(wù)。

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)庫表被鎖如何查詢和解鎖的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫表被鎖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論