精华内容
下载资源
问答
  • oracle中怎样查看一个是否别的用户在使用_百度知道 1个回答 - 提问时间: 2011年02月24日 [专业]答案:selects.*fromv$locked_objectl,dba_objectso,v$sessions,v$processpwherel.object_id=o.object_idandl....

    oracle中怎样查看一个表是否被别的用户在使用_百度知道

    1个回答 - 提问时间: 2011年02月24日

    [专业] 答案:selects.*fromv$locked_objectl,dba_objectso,v$sessions,v$processpwherel.object_id=o.object_idandl.session_id=s.sidands.paddr=p.addrANDobject_...

    Oracle怎么查看表被数据库中那些object使用 - 推酷

    2014年3月13日 - 上面的缺点是如果表名在字符串里面,也就是存在动态执行sql的情况,则得不到对象名称。例子如下: select * from all_dependencies where name like ...

    oracle 中如何查看那个表被锁了? - 技术收藏 - 博客频道 - CSDN...

    2008年1月31日 -  查看被锁的表: select p.spid,c.object_name,b.session_id,b. oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all...

    怎么查看某个表被哪些session在使用? - Oracle数据库管理-ITPUB...

    8条回复 - 发帖时间: 2007年3月30日
    2007年3月30日 - 与数据库 ≡ ›  Oracle数据库管理 › 怎么 查看某个 表被哪些session在 使用?...我用toad 查看了所有session,没有发现在 使用此表的session。 怪怪了sessio...

    oracle查询某张表都被哪些表参照了 - wanggd_blog - 博客园

    2013年7月8日 -  oracle查询某张表都 被哪些表参照了 起因: 系统测试的时候发现如果某条记录...发现这些关系常常是 使用SQL 查询对数据字典验证的结果,幸运的是,在数据...

    (*使用本文*)ORACLE 如何查询被锁定表及如何解锁释放session_oracle_脚本之家

    2013年3月6日 -  ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该 表被某一用户锁定,导致其他用户无法继续操作 复制代码 ...

    Oracle 表被其他的 对象 引用 - 光明的日志 - 网易博客

    1条评论
    2012年8月10日 - 这样当我们不知道某个表在 那个存储过程里面用到的时候,我们就不必要把每个存储过程打开在里面搜,直接用这个语句就可以查到,可以提高效率。 oracle中查...

    查看表被锁 - Oracle数据库栏目 - 红黑联盟

    2011年8月15日 - 首页 > 数据库 >  Oracle > 正文  查看表被锁2011-08-15 个评论 收藏 我要投稿  查看哪个表被锁 select b.owner,b.object_name,a.session_id,a.locked_mo...

    oracle中如何查询表被锁定状态-CSDN论坛-CSDN.NET-中国最大的IT...

    3条回复 - 发帖时间: 2008年10月8日
    2008年10月8日 -  oracle中如何 查询表被锁定状态 [问题点数:100分,结帖人xf_piliangliang] 收藏...对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:3 wsliangli...

    查看oracle的约束被那个表占用(转)_我因土狂_新浪博客

    2010年1月14日 -  查看oracle的约束 被那个表占用(转) (2010-01-14 19:22:52) 转载▼ 标签:...表上的记录,由于创建的约束比较多,不知道约束在 哪个表上,无法删除记录,用...
    展开全文
  • oracle 锁表、解锁的语句

    千次阅读 2018-09-06 15:52:47
    oracle数据库的表进行update操作的时候,忘了提交,导致后面无法对表格进行数据修改...你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL session,如果这个锁表是正常业务你把se...

    对oracle数据库的表进行update操作的时候,忘了提交,导致后面无法对表格进行数据修改操作。现将网络搜索到的

    方法粘贴如下,供遇到问题的小伙伴方便查看。如有侵权,请一定告知,本人必将尽快删除。

    你要知道表锁住了是不是正常锁?因为任何DML语句都会对表加锁。

    你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL session,如果这个锁表是正常业务你把session kill掉了会影响业务的。
    建议先查原因再做决定。

    (1)锁表查询的代码有以下的形式:
    select count(*) from v$locked_object;
    select * from v$locked_object;
    (2)查看哪个表被锁
    select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
    (3)查看是哪个session引起的
    select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;

    (4)查看是哪个sql引起的
    select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sid
    and b.SQL_ID = c.sql_id and c.sql_id = ''
    order by b.logon_time;

    (5)杀掉对应进程
    执行命令:alter system kill session'1025,41';
    其中1025为sid,41为serial#.

    展开全文
  • Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作, 那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。 锁表查询的代码有以下的形式: select count(*) from v$locked_object...

    Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,
    那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。

    1. 锁表查询的代码有以下的形式:
       select count(*) from v$locked_object; 
       select * from v$locked_object; 
    
    1. 查看哪个表被锁
      select b.owner,b.object_name,a.session_id,a.locked_mode 
       from v$locked_object a,dba_objects b 
       where b.object_id = a.object_id; 
    
    1. 查看是哪个session引起的
       select a.OS_USER_NAME, c.owner, c.object_name, b.sid, b.serial#, logon_time 
        from v$locked_object a, v$session b, dba_objects c 
        where a.session_id = b.sid 
         and a.object_id = c.object_id 
        order by b.logon_time; 
    
    1. 杀掉对应进程
      执行命令:alter system kill session '1025,41'; 需要用户有权限操作
      其中1025为sid,41为serial#.
    展开全文
  • oracle 锁表与解锁

    2015-08-17 15:24:53
    oracle 住的对象等级 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s....

    oracle锁住的对象等级

    SELECT /*+ rule */ s.username,
    decode(l.type,'TM','TABLE LOCK',
    'TX','ROW LOCK',
    NULL) LOCK_LEVEL,
    o.owner,o.object_name,o.object_type,
    s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
    FROM v$session s,v$lock l,dba_objects o
    WHERE l.sid = s.sid
    AND l.id1 = o.object_id(+)
    AND s.username is NOT Null

    --kill session语句
    alter system kill session'sid,serial#';

    --以下几个为相关表
    SELECT * FROM v$lock;
    SELECT * FROM v$sqlarea;
    SELECT * FROM v$session;
    SELECT * FROM v$process ;
    SELECT * FROM v$locked_object;
    SELECT * FROM all_objects;
    SELECT * FROM v$session_wait;

    V$LOCK

    中的常用列

     

     

    SID

    :表示持有锁的会话信息。

     

     

    TYPE

    :表示锁的类型。值包括

    TM

    TX

    等。

     

     

    LMODE

    :表示会话等待的锁模式的信息。用数字

    0

    6

    表示,和表

    1

    相对应。

     

     

    REQUEST

    :表示

    session

    请求的锁模式的信息。

     

     

    ID1,ID2

    :表示锁的对象标识。

    V$LOCK中的常用列 
     SID:表示持有锁的会话信息。 
     TYPE:表示锁的类型。值包括TM和TX等。 
     LMODE:表示会话等待的锁模式的信息。用数字0-6表示,和表1相对应。

     REQUEST:表示session请求的锁模式的信息。 

     ID1,ID2:表示锁的对象标识。

    Oracle

    数据库中,

    DML

    锁主要包括

    TM

    锁和

    TX

    锁,其中

    TM

    锁称为表级锁,

    TX

    锁称为事务锁或行级锁。

    Oracle

    数据库中,

    DML

    锁主要包括

    TM

    锁和

    TX

    锁,其中

    TM

    锁称为表级锁,

    TX

    锁称为事务锁或行级锁。

    在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。

    TX:行级锁,事务锁 
     在改变数据时必须是排它模式(mode 6)。 
     每一个活动事务都拥有一个锁。它将在事务结束(commit/rollback)时释放。  如果一个块包括的列被改变而没有ITL(interested transaction list)槽位(entries),那么
    session将锁置于共享模式(mode 4)。当session获得块的ITL槽位时释放。 
     当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交
    或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 

     指出回滚段和事务表项

    TM:表级锁  
     数据库执行任何DDL语句时必须是排它模式;例如,alter table,drop table。 
     执行像insert,update,delete这类DML语句时处于共享模式。它防止其它session对
    同一个对象同时执行ddl语句。 
     任何对象拥有正被改变的数据,TM锁都将必须存在。  锁指向对象。  
    在TM队列避免竞争,可以考虑屏蔽对象表级锁,屏蔽表级锁防止对象执行任何ddl语句。 



    --1.查出锁定object的session的信息以及被锁定的object名
    SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
    l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
    FROM v$locked_object l, all_objects o, v$session s
    WHERE l.object_id = o.object_id
    AND l.session_id = s.sid
    ORDER BY sid, s.serial# ;
    --2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
    SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
    l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
    FROM v$sqlarea a,v$session s, v$locked_object l
    WHERE l.session_id = s.sid
    AND s.prev_sql_addr = a.address
    ORDER BY sid, s.serial#;

    --3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
    SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
    s.terminal, s.logon_time, l.type
    FROM v$session s, v$lock l
    WHERE s.sid = l.sid
    AND s.username IS NOT NULL
    ORDER BY sid;

    这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
    任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
    SELECT /*+ rule */ s.username,
    decode(l.type,'TM','TABLE LOCK',
    'TX','ROW LOCK',
    NULL) LOCK_LEVEL,
    o.owner,o.object_name,o.object_type,
    s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
    FROM v$session s,v$lock l,dba_objects o
    WHERE l.sid = s.sid
    AND l.id1 = o.object_id(+)
    AND s.username is NOT NULL
    如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
    以下的语句可以查询到谁锁了表,而谁在等待。
    以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
    如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN
    col user_name format a10
    col owner format a10
    col object_name format a10
    col object_type format a10
    SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
    o.owner,o.object_name,o.object_type,s.sid,s.serial#
    FROM v$locked_object l,dba_objects o,v$session s
    WHERE l.object_id=o.object_id
    AND l.session_id=s.sid
    ORDER BY o.object_id,xidusn DESC

    展开全文
  • oracle数据库被锁表解决方法

    千次阅读 2018-07-12 14:40:36
    修改数据库中一个表中的其中一条记录的时候,提示表被锁,以下是解决这个问题的方法:1、Oracle数据库切换为管理员用户,然后运行以下语句select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_...
  • oracle表被锁了怎么处理

    千次阅读 2017-07-24 17:15:20
    首先你要知道表锁住了是不是正常...你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL session,如果这个锁表是正常业务你把session kill掉了会影响业务的。建议先查原因再做决定。
  • 如果发生了等待,我们可能更想知道是谁而引起谁的等待 以下的语句可以查询到谁: 代码如下: SELECT /*+ rule */ s.username, decode(l.type,’TM’,’TABLE LOCK’, ‘TX’,’ROW LOCK’, NULL) LOCK_...
  • Oracle锁表与解锁

    2012-12-03 14:40:33
    Oracle锁表与解锁  SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s....
  • 如果你在用oracle数据中某个时,突然不用了,有可能是某人把你的住了,现在说说在不知道的情况下,如何去解锁…… 文档中有详细说明……
  • oracle锁表查询

    2013-06-09 16:24:08
    oracle数据库的人都知道,某些表被锁住过后,一使用应用程序就报错。这个程序可以很好的解决这个问题。
  • Oracle数据库的解锁

    2013-12-30 18:16:54
    Oracle锁表与解锁  SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s....
  • oracle 查看是否被锁住并kill

    千次阅读 2019-01-03 16:34:53
    oracle ORA-14452错误处理 临时表被锁 create global temporary table on commit preserve rows 用于会话相关, 也就在事务结束后truncate data in the temporary table,但如果在会话未结束时要 修改temporary ...
  • oracle 解锁

    千次阅读 2012-06-25 14:17:25
    oracle表解锁 2011-05-12 16:05 Oracle错误ORA-00054:resource busy and acquire with nowait specified解决方法 (select * from talbe for update nowait) 当某个数据库用户在数据库中插入、更新、...
  • 当一个表被多个人操作时,假设A进行了DML操作,在没有提交的情况下,该表是上的,B是无法对该表进行DML操作的。若B进行DML,则会一直等待,直到该表解锁。如下步骤: 打开一个cmd,然后A查询表ex1。 A对表ex1做...
  • Oracle锁表与解锁 、Oracle锁用户

    千次阅读 2012-12-11 00:57:04
    Oracle锁表与解锁  SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s....
  • Oracle数据库的表被锁,解决方法

    千次阅读 2018-05-23 20:43:08
    在做数据的删除操作时,由于网络突然断开导致表被锁定,解决方方法:先执行下面的代码:SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id ...
  • ORACLE存储过程被锁

    千次阅读 2018-06-06 10:29:58
    1.查看是哪一个存储过程被锁住查V$DB_OBJECT_CACHE视图select * from V$DB_OBJECT_CACHE where owner='过程的所属用户' AND LOCKS!='0' 2.查看是哪一个sid,通过sid可以知道是哪一个session查v$access视图select * ...
  • Oracle锁表与解锁 Oracle锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#...
  • Oracle锁表与解锁

    千次阅读 2008-03-18 16:15:00
    Oracle锁表与解锁 SELECT /*+ rule */ s.username,decode(l.type,TM,TABLE LOCK,TX,ROW LOCK,NULL) LOCK_LEVEL,o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.terminal,s.machine,s.program,s.os
  • Oracle锁表和锁用户

    2013-09-04 18:13:09
    -- 用户锁定(亲试,可以) 如果有用户已经锁定,则以系统用户登录数据库,执行如下命令,对锁定的帐户解除锁定。  ...SQL> alter user msgbox identified by password account ...Oracle锁表与解锁 
  • Oracle会话查询等 2016年05月11日 10:27:00 波特王子 阅读数:4432 如何查看oracle当前连接数,会话数 收藏 查看session: select * from v$session where username is not null select username,count...
  • oracle数据库查看用户锁表及对表解锁的sql语句 大型项目中很多人使用一个用户名登录oracle服务器,很多人都有可能对同一张表进行各种操作,不知不觉地就会出现锁表的情况。如何解决此问题呢?据老手说很简单,下面...
  • ORACLE锁表查询

    千次阅读 2013-02-25 13:51:42
    ORACLE锁表查询  最近遇到这样一个问题,操作一个表,发现人锁定了,于是查询谁锁定的表,发现多人锁定,安全起见,不能全部kill,于是用一下语句判定,谁锁定,谁等待。 SELECT /*+ rule */ lpad(' ',dec

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,751
精华内容 18,300
关键字:

oracle怎么知道表被锁