oracle查看被锁的表和被锁的进程以及杀掉这个进程

来源:本网整理

DML锁又可以分为,行锁、表锁、死锁 -行锁:当事务执行数据库插入、更新、删除操作时,该事务自动获得操作表中操作行的排它锁。 -表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL语句影响记录行的更新。

-- 1. 查看被锁的表

首先你要知道表锁住了是不是正常锁?因为任何DML语句都会对表加锁。 你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL session,如果这个锁表是正常业务你把session kill掉了会影响业务的。 建议先查原因再做决

SELECT p.spid, a.serial#, 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_objects c WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id

--查询被锁的表 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; --查看是哪个session引起的 select b.username,b.sid,b.serial#,logon_time from v$locked_o

-- 2. 查看是哪个进程锁的

通过dba_objects查找表的object_id,再查v$lock中id1等于object_id的,在这行里肯定有个不同于你SID的用户拥有了这个表的锁,它肯定在update这个表,长时间没有commit,要么找到这个client让它commit或者rollback,要么通过sid把它kill掉 下面还

查看哪个表被锁 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 查看是哪个session引起的 select b.username,b.sid,b.serial#,logon_time from v$locked_obje

SELECT sid, serial#, username, status, osuser FROM v$session where serial# = '5002' SELECT sid, serial#, username, status, osuser FROM v$session where serial# = '3789'

亚洲人大多为偏暖的自然肤色,适合的纯色为偏暖,偏橘的颜色珊瑚色系、暖色系雷区∶桃红,紫红等冷色系珊瑚色系(介于粉色和橘色之间)十分日常,提亮气色,显温柔1.ysl圆管shine462.纪梵希304/305正红色!!显白有气场!1.Dior999这只是我自己入的第一只口红,颜色正!涂厚涂薄都有不一样的感觉,薄涂相对日常,在正式场合就涂厚!端庄大气!近来很火的姨妈色,其实皮肤暗沉的仙女就不要去入了,会显得皮肤更憔悴。荧光色,芭比粉也是黑皮黄皮雷区了!希望每个仙女都能找到适合自己的口红比心

-- 3. 杀掉这个进程

猫咪护理的其中一个重要部分就是:给它们喂药。给猫咪喂口服药的难度绝对高于给小孩子喂药,因为猫咪无法理解你在做什么、和你为什么要这样做。你必须要保证让猫咪将药物吃进去而不是吐出来。喂猫吃药的方法一、喂固体药1、用一只手放于猫咪的头上,用大拇指和是指卡在猫咪的犬齿侧面,用手掌抵住猫咪头部的其他部分。2、轻柔的向上倾斜猫咪的头部,令猫的鼻子朝上。3、收紧大拇指和食指,猫咪的嘴巴会张开4、用另一只手拿着药片,保持猫咪的嘴巴张开,将药片放在猫咪嘴中尽可能靠近喉咙的位置。5、快速的合上猫咪的嘴巴,轻轻的摩擦猫咪的咽喉以刺激吞咽反应。如果药片非常的大,猫咪会很难吞咽,可以将药片掰成小片,一点一点喂进去。二、

查看哪个表被锁 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 查看是哪个session引起的 select b.username,b.sid,b.serial#,logon_time from v$locked_obje

alter system kill session 'sid,serial#'; alter system kill session '269,3789'; alter system kill session '34,4661'; alter system kill session '265,5002'; alter system kill session '289,1688'; alter system kill session '282,5799';

这个答主太有经验了。作为一个看《我的少女时代》《银河护卫队2》都会泪崩的人,就不要说看到《泰坦尼克号》《珍珠港》这样的悲剧大片,简直哭到掐人中。所以,对于我这样的人来说,睡前看了悲惨万分的,然后脑子太兴奋睡不着的时候,最好的办法就是再看一个嚎啕大哭的。这里我特别推荐日本的纯爱电视剧或者宠物电影。比如有《一公升眼泪》,你都不需要看完全集,只要看泽尻绘里香演的女主快病死的那两集,或者从第8集开始看。剧中的泽尻美人一飙泪,你的眼泪也会完全止不住,特别再配上《粉雪》这首插曲,你会哭得一点力气都没有,然后就能安然的进入梦乡。有关于宠物的电影,特别是生死离别的,真的……我不信不哭死你,比如中村苍演的《你和

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

oracle 怎么查看数据被锁

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和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)杀掉对应进程

执行命令:alter system kill session'1025,41';

其中1025为sid,41为serial#.

oracle 锁表、解锁的语句

一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。

1.下面的语句用来查询哪些对象被锁:

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.下面的语句用来杀死一个进程:

alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)

【注】以上两步,可以通过Oracle的管理控制台来执行。

3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

select spid, osuser, s.program

from v$session s,v$process p

where s.paddr=p.addr and s.sid=24 (24是上面的sid)

4.在OS上杀死这个进程(线程):

1)在unix上,用root身份执行命令:

#kill -9 12345(即第3步查询出的spid)

2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:

orakill sid thread

其中:

sid:表示要杀死的进程属于的实例名

thread:是要杀掉的线程号,即第3步查询出的spid。

例:c:>orakill orcl 12345

oracle表被锁,找到的进程ID在系统里面找不到这是为什么

oracle表被锁,找到的进程ID在系统里面找不到这是为什么

ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作

复制代码 代码如下:--锁表查询SQLSELECT 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;

咨询一个问题:oracle产生了死锁,很多表被锁住了,如何查找引起死锁的源头进程?

标准的答案!下面3个语句是我经常使用来解决oracle锁问题的--注意你的用户有没有权限问题

1.查看被锁的表

SELECTp.spid,a.serial#,c.object_name,b.session_id,b.oracle_username,

b.os_user_name

FROMv$processp,v$sessiona,v$locked_objectb,all_objectsc

WHEREp.addr=a.paddrANDa.process=b.process

ANDc.object_id=b.object_id

2.查看是哪个进程锁的

SELECTsid,serial#,username,osuserFROMv$sessionwhereosuser='tangpj'

3.杀掉这个进程altersystemkillsession'sid,serial#';

查看有哪些表被锁住 如何杀死oracle死锁进程

查看被锁的表:

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_objects c

where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id

解锁:

alter system kill session '146';(其中146为锁住的进程号)

  • 本文相关:
  • 快速查出Oracle数据库中锁等待的方法
  • oracle使用instr或like方法判断是否包含字符串
  • oracle通过行范围查询取4至10行
  • oracle 11g 设置用户密码大小写敏感测试
  • Oracle 查询表信息获取表字段及字段注释
  • ORACLE 10G修改字符编码没有超字符集的限制
  • ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
  • 如何在Oracle中导入dmp文件
  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
  • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved