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


     

     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';
    

      

  • 相关阅读:
    django 模板继承
    redis集群环境配置
    压力测试工具:apache bench(ab)
    php yield关键字以及协程的实现
    php图片木马实现原理
    关于接口幂等性
    关于easyswoole实现websocket聊天室的步骤解析
    php混淆加密解密实战
    关于mysql集群主从服务器搭建
    mysql binlog恢复数据实战
  • 原文地址:https://www.cnblogs.com/lkj371/p/16715928.html
Copyright © 2020-2023  润新知