2022-09-21 16:02阅读: 45评论: 0推荐: 0

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

 

 1. 数据库为什么会被锁

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

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

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

2.解决方法

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

1
2
3
4
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;

 

找到对应的锁定表执行:

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

  

posted @   雪竹子  阅读(45)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起