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