首页 > 数据库 >Oracle Database “record locked by another user” solution (recommended)

Oracle Database “record locked by another user” solution (recommended)

时间:2022-09-21 16:12:38浏览次数:80  
标签:事务 locked Database 数据库 object solution session id

 

 1. 数据库为什么会被锁

数据库是多个用户使用的共享资源。当多个用户同时访问同一个数据库中的数据时。如果不控制并发操作,可能会读取和存储不正确的数据,破坏数据库的一致性。

 锁定是实现数据库并发控制的一项非常重要的技术。在事务对数据对象进行操作之前,它首先向系统发送请求以锁定它。加锁后,事务对数据对象有一定的控制权。在事务释放锁之前,其他事务不能更新数据对象

数据库中有两种基本的锁类型:排他锁(x 锁)和共享锁(s 锁)。当对数据对象应用排他锁时,其他事务无法读取或修改它。具有共享锁的数据对象可以被其他事务读取,但不能被修改。数据库使用这两种基本锁类型来控制数据库事务的并发性。

2.解决方法

用管理员账号登录数据库,执行SQL:

SELECT object_name, machine, s.sid, s.serial#   
FROM gv$locked_object l, dba_objects o, gv$session s   
WHERE l.object_id = o.object_id   
AND l.session_id = s.sid;

 

找到对应的锁定表执行:

--释放SESSION SQL:  
--alter system kill session 'sid, serial#';  
ALTER system kill session '23, 1647';

  

标签:事务,locked,Database,数据库,object,solution,session,id
From: https://www.cnblogs.com/lkj371/p/16715928.html

相关文章