精华内容
下载资源
问答
  • oracle数据库显示:记录被另一个用户锁住
    2019-02-22 14:57:55

    解决办法:

    select object_id,session_id,locked_mode from v$locked_object;

    select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;


    alter system kill session '73,13';

    更多相关内容
  •  数据库一个用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。  加锁是实现...
  • 数据库一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。这篇文章主要介绍了Oracle数据库"记录被另一个用户锁住"解决方法
  • 数据库一个用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现...

    1、锁表原因:

        数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

        加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。

        在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即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';

    希望此文能够帮助到您! 

    展开全文
  • 数据库一个用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 原理: 1....
    原因:
    数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

    原理:

    1.UPDATE/DELETE操作会将RS锁定,直至操作被COMMIT或者ROLLBACK;
    若操作未COMMIT之前其他session对同样的RS做变更操作,则操作会被hold,直至前session的UPDATE/DELETE操作被COMMIT;
    
    2.session内外SELECT的RS范围
    前提:INSERT、UPDATE操作未COMMIT之前进行SELECT;
    若在同一session内,SELECT出来的RS会包括之前INSERT、UPDATE影响的记录;
    若不在同一session内,SELECT出来的RS不会包括未被COMMIT的记录;
    
    3.SELECT.... FOR UPDATE [OF cols] [NOWAIT/WAIT] [SKIP LOCKED]
    OF cols:只锁定指定字段所在表的RS,而没有指定的表则不会锁定,只会在多表联合查询时出现;
    NOWAIT:语句不会hold,而是直接返回错误ORA-00054: resource busy and acquire with NOWAIT specified;
    WAIT N:语句被hold N秒,之后返回错误ORA-30006: resource busy; acquire with WAIT timeout expired;
    SKIP LOCKED:不提示错误,而是直接返回no rows selected;
    以上几个选项可以联合使用的,比较推荐的有:
    SELECT.... FOR UPDATE NOWAIT:对同一RS执行该SQL时,直接返回错误;
    SELECT.... FOR UPDATE NOWAIT SKIP LOCKED:对同一RS执行该SQL时,直接返回空行;
    PS:当RS被LOCK住之后,只对同样请求LOCK的语句有效,对无需LOCK的SELECT语句并没有任何影响;
    
    
    
    解决办法:


    oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法:

    1、查看数据库锁,诊断锁的来源及类型:   select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id

    2、找出数据库的serial#,以备杀死:    select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;

    3、杀死该session   alter system kill session 'sid,serial#'



    展开全文
  • 数据库一个用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现...

    1、为什么会出锁住:

        数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

        加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。

        在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。

    2、解决方法:

    查询进程:

    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;

    找到对应锁住的表执行:

    ALTER system kill session 'sid,serial#';

    展开全文
  • 出现的原因是有人对某一条数据进行了修改,...记录被另外一个用户锁定"。 现在就需要对其进行删除,以便达到修改数据的目的。 1、查看数据库锁,诊断的来源及其类型:select object_id,session_id,loc...
  • --查看数据库锁,诊断的来源及类型: select object_id,session_id,locked_mode from v$locked_object; -- 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, ...
  • 数据库一个用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁...
  • oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1、查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b...
  • plsql被另一个用户锁住的解决办法

    千次阅读 2018-09-09 18:26:38
    今天很不幸,可能由于自己的疏忽,在用plsql的时候用select * from 表名 for ...就报错了,提示【记录被另一个用户锁住】,所以这里提醒一下大家,最好不要用for update去修改数据,要用 select A.*,A.rowid fro...
  • 1、查看数据库锁,诊断的来源及类型:  select object_id,session_id,locked_mode from v$locked_object;   或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_...
  • 当在操作某张表的时候,如果你当你要对那张表进行修改删除操作的时候,工具会提示:“”当前记录被另一个用户锁定",这时候就是因为那张表已经被锁,想操作的话只能把这张表的解调就可以了, 首先,执行sql...
  • 1、查看数据库锁,诊断的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object ...
  • oracle提醒记录被另一个用户锁住: 问题描述:pl/sql修改数据时,报错提醒记录被另一个用户锁住“ 问题分析:你用select t.*,t.rowid from axj_logsend_0728修改数据结果集时,计oracle会通过事务锁锁住这个记录,...
  • 今天,运行Java后台程序,设置了断点,每到... 于是我就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住,一开始还以为整个表锁住了,后来发现,仅仅是这个字段不能改变,其他的字段...
  • PLSQL记录被另一个用户锁住
  • 今天,运行Java后台程序,设置了断点,每到执行... 于是我就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住,一开始还以为整个表锁住了,后来发现,仅仅是这个字段不能改变,其他的字段
  • 1 查看数据库锁,诊断的来源及类型 select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba...
  • 锁的原因就是有人在你之前修改记录,此时oracle会通过事务锁锁住个记录,而且这修改记录的人还没有提交或回滚记录,接下来你又试图修改同记录,你就会事务锁所阻塞。 处理方法很简单,可以有以下两...
  • 1、查看数据库锁,诊断的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令:  select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object ...
  • 在oracle数据中删除数据时提示“记录被另一个用户锁住” -- 1、查看数据库锁,诊断锁的来源及类型:   原模原样的执行以下命令:  select b.owner,b.object_name,l.session_id,l.locked_mode  from v$...
  • 数据库记录被锁住的处理方法

    千次阅读 2016-05-10 10:54:26
    由于之前的用户操作失败或一直未能提交事务,导致数据记录被锁住,其他用户无法操作。处理方法就是找到连接,执行杀掉session即可。 在sql中执行下面的方法: select Distinct 'alter system kill session ' |...
  • 在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁锁定,本文将介绍如何解决此问题
  • oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法:  1、查看数据库锁,诊断锁的来源及类型:   select object_id,session_id,locked_mode from v$locked_object;  或者用以下命令:  select b...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,025
精华内容 17,610
关键字:

数据库记录被另一个用户锁住

友情链接: IEEE80211a.zip