精华内容
下载资源
问答
  • Oracle锁表查询和解锁方法

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

    我们这里一般用的PL/SQL,总是无意间把表锁住,所以我今天就整理了一下简单的解锁和查询锁表的方法;

    一、首先PL/SQL要以管理员的账号(system/admin等)登录,管理员的账号和密码根据个人设置而来,连接为一般选择Normal,也可选择SYSDBA;

    二、相关SQL语句:

    --以下几个为相关表
    SELECT*FROMv$lock;
    SELECT*FROMv$sqlarea;
    SELECT*FROMv$session;
    SELECT*FROMv$process;
    SELECT*FROMv$locked_object;
    SELECT*FROMall_objects;
    SELECT*FROMv$session_wait;
    --查看被锁表信息
    SQL > select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name, ao.object_name,lo.locked_mode  from v$locked_object lo,dba_objects ao,v$session sess where ao.object_id=lo.object_id and lo.session_id=sess.sid;

    --杀掉锁表进程
    SQL > alter system kill session '68,51';--分别为SID和SERIAL#号

    --查看数据库引起锁表的SQL语句 
    SELECT A.USERNAME,
           A.MACHINE,
           A.PROGRAM,
           A.SID,
           A.SERIAL#,
           A.STATUS,
           C.PIECE,
           C.SQL_TEXT
      FROM V$SESSION A, V$SQLTEXT C
     WHERE A.SID IN (SELECT DISTINCT T2.SID
                       FROM V$LOCKED_OBJECT T1, V$SESSION T2
                      WHERE T1.SESSION_ID = T2.SID)
       AND A.SQL_ADDRESS = C.ADDRESS(+)
     ORDER BY C.PIECE;

    展开全文
  • DB2锁表和解锁

    千次阅读 2019-03-10 18:40:48
    文章目录1、锁表2、解锁 1、锁表 登录数据库实例 2、解锁


    1、锁表

    在这里插入图片描述

    1.1、用XShell等工具连接数据库

    在这里插入图片描述

    1.2、登录数据库实例

    db2 connect to 数据库名 user 用户名 using 密码
    或者
    db2 connect to 数据库名

    db2 connect to cumgmdb user cu_mgmap using -U1AkXXX
    --或者
    db2 connect to cumgmdb
    

    成功后如下图:

    在这里插入图片描述

    1.3、锁表

    db2 +c “lock table 数据库名.表名 in exclusive mode”

    db2 +c "lock table CU_MGMDB.TBL_CUMGM_BIN in exclusive mode"
    

    如下图:表示锁表成功
    在这里插入图片描述
    执行查询语句,会发现一直转圈圈,无法查询
    在这里插入图片描述

    2、解锁

    2.1 登录数据库实例

    详见1.2、登录数据库实例

    2.2、进入db2top工具

    db2top -d 数据库名

    db2top -d cumgmdb
    

    执行上述命令后,进入如下界面
    在这里插入图片描述

    2.3、按U进入锁定列表

    按【U】即可进入锁定列表,注意:是大写的U
    在这里插入图片描述

    2.4、按 / 查找锁定的表

    按 / 输入要查找的表
    在这里插入图片描述
    下图即为成功找到了被锁的表CU_MGMDB.TBL_CUMGM_BIN,
    id为59085
    在这里插入图片描述

    2.4、按 a 解锁

    按【a】,输入被锁表的id,回车

    再按【f】,
    在这里插入图片描述
    输入y,即可解锁成功

    3、另一种解锁方法

    db2 commit
    

    4、写在最后

    锁表和解锁必须登录DB2数据库后。
    为什么要锁表?
    软件测试做数据库异常测试时,可以用锁表的方法来模拟异常场景。

    展开全文
  • oracle锁表,解锁

    oracle锁表情况时有发生,本文介绍了查看具体锁信息、强制删除锁、批量解锁等操作

    一. 查看锁信息的方式

    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. 查询引起锁表的语句:

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

    4.查看是哪个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
    

    二. 解锁方式

    1. 直接杀掉对应进程

    alter system kill session'1025,41';
    

    其中1025为sid,41为serial#,均可以使用上面第四条的语句进行查询出来

    2. 批量解锁的存储过程

    declare cursor mycur is  
    select b.sid,b.serial#  
      from v$locked_object a,v$session b  
      where a.session_id = b.sid group by b.sid,b.serial#;  
      
    begin  
      for cur in mycur  
        loop    
         execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');  
         end loop;  
         
    end;
    
    展开全文
  • PostgerSQL 解决锁表

    万次阅读 2019-04-24 13:51:00
    查询是否锁表 select oid from pg_class where relname='可能被锁的表'; select pid from pg_locks where relation='上面查出的oid' order by pid asc; 如果查询到了结果,表示该表被锁 则需要释放锁定 select ...
    • 查询是否锁表
    select oid from pg_class where relname='可能被锁的表';
    select pid from pg_locks where relation='上面查出的oid' order by pid asc;

     

    • 如果查询到了结果,表示该表被锁 则需要释放锁定
    select pg_cancel_backend(上面查到的第一个pid);
    • 以上SQL语句表示杀死进程,pid为****
       
    展开全文
  • SQL Server 锁表、查询被锁表、解锁相关语句,供参考。 --锁表(其它事务不能读、更新、删除) BEGIN TRAN SELECT * FROM <表名> WITH(TABLOCKX); WAITFOR delay '00:00:20' COMMIT TRAN --...
  • 什么是MySQL锁表?为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB...
  • mysql锁表查询和解锁操作

    万次阅读 2018-08-11 16:42:09
    mysql锁表查询和解锁操作 1、在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况 SELECT * FROM information_schema....
  • 锁表和解锁

    2018-01-11 15:46:56
    前端开发中工作项目融合了Hibernate框架,导致在前端页面对业务表数据进行操作时(执行数据库插入、更新、删除操作),容易导致数据库锁表。 这里直接提供锁表查询和解锁对应的方法: 1.下面的语句用来查询哪些...
  • Oracle锁表、解锁、批量解锁表

    千次阅读 2017-05-12 10:50:48
    1、查询被锁表的SQL: 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; 2、查看哪个进程锁的 ...
  • mysql锁表、解锁

    千次阅读 2019-05-07 16:48:17
    查看mysql锁表的情况 >select * from information_schema.innodb_trx; >show processlist 杀掉查询结果中锁表的trx_mysql_thread_id,其中trx_mysql_thread_id对应 show processlist 的Id >...
  • MySQL 数据库sql命令查询被锁的表实例演示,mysql的锁表与解锁,mysql强制解锁杀掉进程,mysql查询锁表一直转圈。 show open tables where in_use > 0 命令可以查询锁表。 in_use 为 1 表示这个表同时被两个用户使用...
  • oracle 查看锁表sql语句(导致锁表的sql)、解锁语句 –查看锁表进程SQL语句1: –被锁对象表、数据库对象表、数据session表关联来获取被锁对象对应的是那个session; select sess.sid, sess.serial#, lo....
  • oracle锁表查询与解锁脚本|oracle解锁脚本|oracle锁表。 首先你要有权限,没权限就没得玩。 然后你就可以执行下面的sql,童叟无欺。 SELECT b.owner table_owner, b.object_name, c.username, c.sid, c....
  • oracle 查看锁表 清除锁表

    千次阅读 2016-04-28 16:51:49
    查看Oracle数据库被锁住的表,删除锁表的进程 --1.查看被锁住的表 SELECT dob.object_name table_name, lo.locked_mode, lo.session_id, vss.serial#, vss.action action, vss.osuser osuser, vss.logon_...
  • 查询锁表并杀死锁表

    万次阅读 2018-07-27 17:54:29
    1、查询锁表的sid 和 serial# SELECT s.sid, s.serial#  FROM v$locked_object lo, dba_objects ao, v$session s  WHERE ao.object_id = lo.object_id  AND lo.session_id = s.sid;   2、查询锁...
  • oracle锁表解锁

    2019-05-22 15:34:30
    --锁表查询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 ...
  • 解决postgresql数据库锁表问题

    万次阅读 2019-07-12 11:41:56
    查询是否锁表了 select oid from pg_class where relname='可能锁表了的表' select pid from pg_locks where relation='上面查出的oid' 如果查询到了结果,表示该表被锁 则需要释放锁定 select pg_cancel_backend...
  • 锁表查询

    2019-07-03 14:26:21
    Oracle锁表信息查询与解锁 //获取相关锁表信息 select * from v$locked_object a, v$session b where a.session_id=b.sid; 根据锁表信息结果对表解锁(sid,serial#是字段) alter system kill session 'sid...
  • mysql如何锁表和解锁

    千次阅读 2019-09-15 15:13:13
    mysql如何锁表: lock table 表名 read; 如图: 锁表是可以读取表的,如图 锁表之后就不可以对表进行写表(更新,删除,新增)。 查看当前的进程,可以查看哪些表锁。 show processlist ; 如下:test表...
  • 数据库锁表

    2019-09-03 14:14:36
    2、锁表的原理是数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commit或回滚或退出数据库用户 3、锁表的原因 : 第一、 A程序执行了对 tableA 的 insert ,并还未 commite时,B程...
  • hive锁表

    2020-12-02 20:36:13
    在工作中偶尔用户会反馈数据量不到但执行sql一直没结果,这时候可以排查下是否被。表锁相关操作命令如下 showlocks表名--查看表锁, showlocks表名partition(...)--查看分区, unlocktable表名;--解锁 ...
  • mysql查看锁表与解锁

    万次阅读 2018-06-12 14:58:33
    查看锁表语句 show OPEN TABLES where In_use &gt; 0; 找到锁表的进程 show processlist; 删除锁表进程 kill 51045123;
  • sql 锁表了,解除锁表现象

    千次阅读 2019-06-03 13:15:34
    查看那些是否有锁表 select b.username,b.sid,b.serial# from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;...解除锁表, alter system kill session'194,10462'; ...
  • Hive学习(4)hive锁表解决方案

    万次阅读 2021-01-08 10:35:56
    1.锁表原因 a.锁表发生在insert update 、delete 中 b.锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户 c.锁表的原因 第一、 A程序执行了...
  • 在开发的时候,有时候不管是通过cmd操作数据库、还是通过数据库工具操作数据库,有时候不正当的操作会将...在ORCLA与MYSQL中,如何查看锁表与解锁表1 oracle 查看锁表进程SQL: select * from v$session t1, v$locke
  • //查询是否锁表 select oid from pg_class where relname = ‘可能锁表了的表名’; select pid from pg_class where relation = ‘上面查出来的oid’; //如果查询到了结果,表示该表可能被锁了,则需要释放锁定 select...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,344
精华内容 12,937
关键字:

锁表