我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle 查看锁和释放锁

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle 查看锁和释放锁

--查找sid和serial#
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;


       SID    SERIAL# ORACLE_USERNAME
---------- ---------- ------------------------------
OS_USER_NAME
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
LOCKED_MODE
-----------
       125        199 SYS
oracle
TESTLOCK
          3


       SID    SERIAL# ORACLE_USERNAME
---------- ---------- ------------------------------
OS_USER_NAME
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
LOCKED_MODE
-----------
        50        181 SYS
oracle
TESTLOCK
          3
          
          
          
--释放SESSION SQL:
alter system kill session '50,128';



--查找锁的SQLid
SQL>  select sid,event,sql_id from v$session where sid in ('125','50');

       SID EVENT
---------- ----------------------------------------------------------------
SQL_ID
-------------
        50 enq: TX - row lock contention
3c8u4r1z8u9ss

       125 SQL*Net message from client
fvk2xw29t6hw4



--查看SQL的执行计划
SQL>  select * from  table(dbms_xplan.displaY_cursor('3c8u4r1z8u9ss'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  3c8u4r1z8u9ss, child number 0
-------------------------------------
update testlock set num=8 where num=7

Plan hash value: 2631153153

-------------------------------------------------------------------------------
| Id  | Operation          | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT   |          |       |       |     2 (100)|          |
|   1 |  UPDATE            | TESTLOCK |       |       |            |          |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|*  2 |   TABLE ACCESS FULL| TESTLOCK |     1 |    13 |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter("NUM"=7)

Note
-----
   - dynamic statistics used: dynamic sampling (level=2)

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------


23 rows selected.


--查找SQL的语句
select sql_text from v$sqltext where SQL_ID='3c8u4r1z8u9ss';



--
SQL> select SID,TYpe,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK from V$lock where block=1 or request<>0;

       SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------- -- ---------- ---------- ---------- ---------- ---------- ----------
       125 TX     655382        969          6          0       9699          1
        50 TX     655382        969          0          6       9622          0



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle 查看锁和释放锁

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ORACLE查看表被锁和删除锁

(1)锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; (2)查看哪个表被锁 select b.owner,b.object_name,a.s
ORACLE查看表被锁和删除锁
2018-09-19

oracle中rollback怎么释放锁

在Oracle中,ROLLBACK语句会撤销未提交的事务,并释放相关的锁。当一个事务被回滚时,Oracle会自动释放事务中涉及的所有锁,并将数据库恢复到回滚之前的状态。这意味着其他事务可以再次访问被锁定的资源。因此,使用ROLLBACK语句
oracle中rollback怎么释放锁
2024-04-18

mysql行锁如何释放

mysql 行锁的释放MySQL 中的行锁在事务提交或回滚时自动释放。这意味着当一个事务完成时,由该事务持有的所有行锁都会立即解除。手动释放行锁在某些情况下,开发人员可能希望手动释放行锁。这可以通过以下方式实现:COMMIT 或 RO
mysql行锁如何释放
2024-06-14

oracle怎么查看当前锁

要查看当前数据库中的锁,您可以执行以下查询:SELECTc.owner,c.object_name,c.object_type,b.sid,b.serial#,b.status,b.osuser,b.machineFROMv$locke
oracle怎么查看当前锁
2024-05-21

Java中死锁和释放锁的基本介绍和细节讨论

死锁(Deadlock)是多线程编程中的一个经典问题,指的是两个或多个线程互相等待对方释放资源,从而导致程序无法继续执行的状态。 死锁产生的条件,通常被称为死锁的“必要条件”,包括: 互斥条件(Mutual Exclusion): 一个资
2023-08-30

Python中threading库实现线程锁与释放锁

目录控制资源访问判断是否有另一个线程请求锁with lock同步线程Condition屏障(barrier)有限资源的并发访问隐藏资源控制资源访问 前文提到threading库在多线程时,对同一资源的访问容易导致破坏与丢失数据。为了保证安全
2022-06-02

Oracle数据库查看锁表语句和解锁的方法示例

目录一、查看锁表语句二、解锁语句三、查看引起锁表的Sql语句总结 一、查看锁表语句SELECTsess.sid,sess.serial#,lo.oracle_username, -- 登陆账号名称lo.os_user_name, -
2023-10-11

redis分布式锁怎么释放

如何释放 redis 分布式锁Redis 分布式锁是一种用于在分布式系统中协调对共享资源的访问的技术。释放分布式锁至关重要,因为它可以确保资源在使用后被正确释放,从而防止死锁和数据不一致。释放 Redis 分布式锁的步骤:1. 获取锁
redis分布式锁怎么释放
2024-05-21

oracle怎么查看锁表的原因

oracle锁表的原因是:当一个程序执行了对一个表的insert,并且还未commite时,另一个程序也对同一个表进行insert,则此时就会发生资源正忙的异常,也就是锁表。本教程操作系统:windows10系统、Oracle 19c版本、
2023-07-10

oracle怎么查看表是否被锁

要查看表是否被锁,可以使用以下SQL查询语句:SELECT OBJECT_NAME, SESSION_ID, LOCKED_MODE FROM V$LOCK WHERE OBJECT_ID = (SELECT OBJECT_ID FR
oracle怎么查看表是否被锁
2024-05-21

Python中threading库如何实现线程锁与释放锁

小编给大家分享一下Python中threading库如何实现线程锁与释放锁,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!控制资源访问前文提到threading库在
2023-06-15

oracle查询锁表怎么解锁

oracle 查询语句被锁定时,可通过以下步骤解锁:确定被锁会话 id。终止被锁会话。验证解锁成功。如涉及多个表或会话,重复以上步骤。备份数据,避免解锁带来的数据丢失。考虑显式锁提示(nowait/skip locked)以防锁。Oracl
oracle查询锁表怎么解锁
2024-05-21

编程热搜

目录