精华内容
下载资源
问答
  • oracle查询是否锁表

    2013-12-20 14:00:51
    原文来自: ...   Oracle锁表与解锁  SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,o.owner,o.object_name,o.o...

    原文来自: http://www.cnblogs.com/swcjd/articles/1150893.html

     

    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'50,492';
    --以下几个为相关表
    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;
    --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和执行的语句
    --比上面那段多出sql_text和action
    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语句其实产生了两个锁,一个是表锁,一个是行锁。
    杀锁命令
    alter system kill session 'sid,serial#'
    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

    展开全文
  • 1.oracle查询是否锁表 SELECT C.SID AS SID, C.SERIAL# AS SERIAL, D.NAME, B.OBJECT_NAME, C.USERNAME, C.PROGRAM, C.OSUSER FROM GV$LOCKED_OBJECT A, ALL_OBJECTS B, GV$SESSION C, AUDIT_ACTIONS D WHERE...

    1.oracle查询是否锁表
    SELECT C.SID         AS SID,
           C.SERIAL#     AS SERIAL,
           D.NAME,
           B.OBJECT_NAME,
           C.USERNAME,
           C.PROGRAM,
           C.OSUSER
      FROM GV$LOCKED_OBJECT A, ALL_OBJECTS B, GV$SESSION C, AUDIT_ACTIONS D
     WHERE A.OBJECT_ID = B.OBJECT_ID
       AND A.INST_ID = C.INST_ID(+)
       AND A.SESSION_ID = C.SID(+)
       AND C.COMMAND = D.ACTION
      ---AND B.OBJECT_NAME =

     


     2.杀掉死锁

    其中SID和SERIAL为上面语句,查询的结果中包含
       alter system kill session 'SID,SERIAL';

    展开全文
  • Oracle查询用户锁表

    2010-03-31 17:16:04
    Oracle查询用户锁表文档,相信描述如何查询用户锁表,附有代码!
  • oracle查询被锁定的:SELECT p.spid,c.object_name,b.session_id,a.serial#,b.oracle_username,b.os_user_nameFROM v$process p, v$session a, v$locked_object b, all_objects cWHERE p.addr = a.paddrAND a....

    oracle查询被锁定的表:

    SELECT p.spid,

    c.object_name,

    b.session_id,

    a.serial#,

    b.oracle_username,

    b.os_user_name

    FROM v$process p, v$session a, v$locked_object b, all_objects c

    WHERE p.addr = a.paddr

    AND a.process = b.process

    AND c.object_id = b.object_id;

    解除表的锁定:

    DECLARE

    S_CMD VARCHAR2(2000);

    BEGIN

    FOR X IN (SELECT p.spid,

    c.object_name,

    b.session_id,

    a.serial#,

    b.oracle_username,

    b.os_user_name

    FROM v$process p, v$session a, v$locked_object b, all_objects c

    WHERE p.addr = a.paddr

    AND a.process = b.process

    AND c.object_id = b.object_id) LOOP

    S_CMD := ''''||X.SESSION_ID||','||X.SERIAL#||'''';

    BEGIN

    execute immediate 'alter system kill session '||S_CMD;

    exception

    when others then

    DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);

    end;

    END LOOP;

    END;

    展开全文
  • 一、权限问题: 查询被锁必须具有管理员权限的账号才能查询。system/manager或者其他已经被赋权的用户。 二、查询锁表语句:

    一、权限问题:

    查询被锁表必须具有管理员权限的账号才能查询。system/manager或者其他已经被赋权的用户。

    二、查询锁表语句:

    select object_name, l.oracle_username, machine, s.sid, s.serial# 
    from v$locked_object l, dba_objects o, v$session s
    where l.object_id = 0.object_id
    and l.session_id = s.sid

    三、解锁语句:

    alter system kill session '247,641';
    --247为SID值,641为SERIAL#值。字符串中的逗号之间没有空格。

    MySQL的查询被锁表和解锁方法:(简单暴力)

        -- 1.查看当前数据库锁表的情况
        SELECT * FROM information_schema.INNODB_TRX;
        -- 2.杀掉查询结果中锁表的trx_mysql_thread_id
        kill 22

    展开全文
  • oracle锁表查询

    2018-03-08 11:29:45
    oracle锁表查询oracle锁表查询oracle锁表查询oracle锁表查询
  • 1. Oracle 锁表 locktable名字inexclusivemode; 所记录: select * from 名字...2. Oracle 锁表查询 selectb.owner,b.object_name,a.session_id,a.locked_mode from v$locked_objecta,dba_objects b where
  • --oracle查询锁表解锁语句 --首先要用dba权限的用户登录,建议用system,然后直接看sql吧 --1. 如下语句 查询锁定的: SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,l.os_user_name,s....
  • oracle查询锁表和解锁。oracle在操作的过程中经常会遇到锁的情况,一般能够用kill命令消除。
  • oracle查询被锁定的:SELECT p.spid, c.object_name, b.session_id, a.serial#, b.oracle_username, b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects
  • 《【Oracle】—— 锁表查询与解锁》https:// 关于 MaiXiaochai CSDN:https://blog.csdn.net/maixiaochai GitHub:https://github.com/MaiXiaochai 1 查询住的 -- 查询锁表信息 SELECT B....
  • Oracle锁表查询和解锁方法

    万次阅读 多人点赞 2019-05-22 10:07:07
    我们这里一般用的PL/SQL,总是无意间把表锁住,所以我今天就整理了一下简单的解锁和查询锁表的方法; 一、首先PL/SQL要以管理员的账号(system/admin等)登录,管理员的账号和密码根据个人设置而来,连接为一般选择...
  • oracle查询引起锁表的SQL语句

    千次阅读 2019-10-10 17:42:30
    可以通过以下sql查询oracle引起锁表的SQL语句: SELECT A.USERNAME, A.MACHINE, A.PROGRAM, A.SID, A.SERIAL#, A.STATUS, C.PIECE, C.SQL_TEXT, c.SQL_ID FROM V$SESSIO...
  • Oracle查询以及解锁

    千次阅读 2018-05-30 17:21:11
    1.查询引起了锁表的原因 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,...
  • oracle查询锁表及解锁

    2016-03-28 14:20:30
    oracle查询锁表及解锁
  • 查询锁表 SELECT sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode FROM vlockedobjectlo,dbaobjectsao,vlocked_object lo, dba_objects ao, vlockedo​bjectlo,...
  • oracle 查询锁表语句

    2017-09-26 14:27:13
    oracle 查询锁表语句
  • 可以通过以下语句查询: SELECT P.SPID, A.SID, A.SERIAL#, C.OBJECT_NAME, B.SESSION_ID, B.ORACLE_USERNAME, B.OS_USER_NAME FROM V$PROCESS P, V$SESSION A, V$LOCKED_OBJ...
  • Oracle事务、锁表查询及相关实用查询SQL语句
  • Oracle查询

    2018-07-12 16:49:05
    Oracle查询select * from v$locked_object;
  • 个人总结-oracle查询锁表、解锁语句

    万次阅读 2018-11-29 16:59:10
    oracle查询锁表解锁语句 –首先要用dba权限的用户登录,建议用system,然后直接看sql吧 1. 如下语句 查询锁定的. SELECT L.SESSION_ID SID, S.SERIAL#, L.LOCKED_MODE, L.ORACLE_USERNAME, L.OS_...
  • --查询锁表相关参数 select object_name, machine, 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;  --将sid 和serial 依次...
  • Oracle查询锁表

    2021-03-22 14:47:44
    -- 查询Oracle正在执行的SQL语句以及发起的用户 select b.sid oracleid,b.username 用户名,b.serial#,paddr,sql_text 正在执行的SQL,b.MACHINE 计算机名称 from v...--查询当前被 select l.session_id sid,s.seri
  • 一、查询哪些以及查看锁表得会话及操作系统进程ID 其中locked_mode为的级别,spid为数据库所在操作系统的进程id select c.sid, c.serial#, c.username, c.osuser, b.owner, b.object_name, a.locked_...
  • --被对象、数据库对象、数据session关联来获取被对象对应的是那个session; select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object...
  • oracle锁表查询与解锁脚本|oracle解锁脚本|oracle锁表。 首先你要有权限,没权限就没得玩。 然后你就可以执行下面的sql,童叟无欺。 SELECT b.owner table_owner, b.object_name, c.username, c.sid, c....
  • 在进行数据库修改的时候由于修改语句一直没有提交或者是提交失败, 就会造成被锁...// 查询锁表的sql语句 select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, l.os_user_name, s.
  • ORACLE 查询锁表及解锁

    2017-07-17 09:06:42
    ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个时发现一直出于...--查询 SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.obje

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,907
精华内容 33,562
关键字:

oracle查询是否锁表