oracle查询死锁sql 死锁和锁等待的区别,锁等待

&>&怎样快速查出Oracle 数据库中的锁等待
怎样快速查出Oracle 数据库中的锁等待
上传大小:27KB
在大型数据库系统中,为了保证数据的一致性,在对数据库中的数据进行操作时,系统会进行对数据相应的锁定。
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
热门资源标签
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
怎样快速查出Oracle 数据库中的锁等待
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
usersawyer
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
怎样快速查出Oracle 数据库中的锁等待oracle表死锁如何查看和表锁定后如何解锁??? - ITeye问答
oracle表死锁如何查看和表锁定后如何解锁???
&& 1. 查看被锁的表:&&&&
&& 2.&& 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&&&&
&& 3.&&&&&
&& 4.&& 解锁:&&&&
&& 5.&& alter&& system&&&& kill&& session&& '146';(其中146为锁住的进程号)&
&& 1. SELECT&& sn.username, m.SID,sn.SERIAL#, m.TYPE,&
&& 2.&&&&&&&&& DECODE (m.lmode,&
&& 3.&&&&&&&&&&&&&&&&& 0, 'None',&
&& 4.&&&&&&&&&&&&&&&&& 1, 'Null',&
&& 5.&&&&&&&&&&&&&&&&& 2, 'Row Share',&
&& 6.&&&&&&&&&&&&&&&&& 3, 'Row Excl.',&
&& 7.&&&&&&&&&&&&&&&&& 4, 'Share',&
&& 8.&&&&&&&&&&&&&&&&& 5, 'S/Row Excl.',&
&& 9.&&&&&&&&&&&&&&&&& 6, 'Exclusive',&
& 10.&&&&&&&&&&&&&&&&& lmode, LTRIM (TO_CHAR (lmode, '990'))&
& 11.&&&&&&&&&&&&&&&& ) lmode,&
& 12.&&&&&&&&& DECODE (m.request,&
& 13.&&&&&&&&&&&&&&&&& 0, 'None',&
& 14.&&&&&&&&&&&&&&&&& 1, 'Null',&
& 15.&&&&&&&&&&&&&&&&& 2, 'Row Share',&
& 16.&&&&&&&&&&&&&&&&& 3, 'Row Excl.',&
& 17.&&&&&&&&&&&&&&&&& 4, 'Share',&
& 18.&&&&&&&&&&&&&&&&& 5, 'S/Row Excl.',&
& 19.&&&&&&&&&&&&&&&&& 6, 'Exclusive',&
& 20.&&&&&&&&&&&&&&&&& request, LTRIM (TO_CHAR (m.request, '990'))&
& 21.&&&&&&&&&&&&&&&& ) request,&
& 22.&&&&&&&&& m.id1, m.id2&
& 23.&&&& FROM v$session sn, v$lock m&
& 24.&&& WHERE (sn.SID = m.SID AND m.request != 0)&&&&&&&& --存在锁请求,即被阻塞&
& 25.&&&&&& OR (&&& sn.SID = m.SID&&&&&&&&&&&&&&&&&&&&&&&& --不存在锁请求,但是锁定的对象被其他会话请求锁定&
& 26.&&&&&&&&&& AND m.request = 0&
& 27.&&&&&&&&&& AND lmode != 4&
& 28.&&&&&&&&&& AND (id1, id2) IN (&
& 29.&&&&&&&&&&&&&&&&&&&&&&&& SELECT s.id1, s.id2&
& 30.&&&&&&&&&&&&&&&&&&&&&&&&&& FROM v$lock s&
& 31.&&&&&&&&&&&&&&&&&&&&&&&&& WHERE request != 0 AND s.id1 = m.id1&
& 32.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& AND s.id2 = m.id2)&
& 33.&&&&&&&&& )&
& 34. ORDER BY id1, id2, m.&
& 36. alter system kill session '91';&
& 37. alter system kill session '144,633';&
& 38. alter system kill session '91,21';&
& 39. alter system kill session '112,5772';
oracle 查看死锁的脚本
select * from v$lock ,dba_objects,v$session& where& object_id=v$lock.id1& and& v$lock.sid=v$session.sid
已解决问题
未解决问题oracle死锁的时候,如何得知死锁那一刻执行的dml、ddl操作是啥子啊?
[问题点数:100分,结帖人csdnhadoop]
本版专家分:28
结帖率 86.67%
CSDN今日推荐
本版专家分:28
本版专家分:9928
2016年12月 Oracle大版内专家分月排行榜第二2016年11月 Oracle大版内专家分月排行榜第二2016年10月 Oracle大版内专家分月排行榜第二2013年7月 Oracle大版内专家分月排行榜第二
2013年5月 Oracle大版内专家分月排行榜第三
本版专家分:28
本版专家分:372
本版专家分:28
本版专家分:372
本版专家分:269
匿名用户不能发表回复!|
其他相关推荐Oracle死锁的定位方法及解锁方法 - 简书
Oracle死锁的定位方法及解锁方法
死锁的定位方法
通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
1)用dba用户执行以下语句
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)
如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:
Username:死锁语句所用的数据库用户;
Lockwait:死锁的状态,如果有内容表示被死锁。
Status: 状态,active表示被死锁
Machine: 死锁语句所在的机器。
Program: 产生死锁的语句主要来自哪个应用程序。
2)用dba用户执行以下语句,可以查看到被死锁的语句。
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
死锁的解决方法
一般情况下,只要将产生死锁的语句提交就可以了,但是在实际的执行过程中。用户可
能不知道产生死锁的语句是哪一句。可以将程序关闭并重新启动就可以了。
 经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法。
1)查找死锁的进程:
sqlplus "/as sysdba" (sys/change_on_install)
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
3)如果还不能解决:
select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.
其中sid用死锁的sid替换: exit
ps -ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程
在数据库的开发过程中,经常碰到包、存储过程、函数无法编译或编译时会导致PL/SQL 无法响应的问题。碰到这种问题,基本上都要重启数据库解决,严重浪费开发时间。本文将就产生这种现象的原因和解决方案做基本的介绍。 问题分析 从事数据库开发的都知道锁的概念,如:执行 Update...
[TOC] Class I. Words Expressing Abstract Relations Section I. Existence 1. Being, in The Abstract existence 1 absolute
a.绝对的,完全的; 无(条件...
1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。 1、一个&.java&源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个publ...
目录 用户操作语句 表空间操作语句 数据文件操作语句 数据表操作语句 数据库属性操作语句 1. 用户操作语句 查看scott用户的默认表空间、临时表空间select username,default_tablespace,temporary_tablespacefrom d...
百战程序员_ Java1573题 QQ群:034603 掌握80%年薪20万掌握50%年薪10万 全程项目穿插, 从易到难,含17个项目视频和资料持续更新,请关注www.itbaizhan.com 国内最牛七星级团队马士兵、高淇等11位十年开发经验专...
亲爱的自己,该醒醒了。你已经做了太多无谓的挣扎,太多荒唐的事情,太多盲目的决定,而错过了太多本来的幸福,太多安静的生活,太多理性的选择。现在开始,请认真把你做过的都忘记,再用心把你错过的都弥补回来。你要更精彩的活,精彩的让别人注视和羡慕,而不只是关注别人的幸福。
今年看的第一部小说就是东野圭吾的《假面饭店》,最近又看了他的《白夜行》,是一个留美博士后同学推荐的,这本小说号称万千东野迷心中的无冕之王,曾被改编成电影和电视剧,风靡一时。 这是一部推理刑侦小说,以废弃建筑内一具男尸拉开序幕,一名警察追踪19年,揭开当年两名小学生男女悲惨童...
在行书1800余年的发展历程中,有三帧里程碑式的开山巨作:东晋王羲之的《兰亭集序》、中唐颜真卿的《祭侄文稿》、北宋苏东坡的《黄州寒食诗帖》。它们先后媲美,各领风骚,成为行书标杆性的经典作品,被后世并称为“天下三大行书”。 这三大行书,代表了三个不同时代的不同书风,同时,也各...
1、每月交__次作业,交作业时间分别是每月__号。 2、作业雨的时间是交作业当天的__点到__点。 3、作业雨后__点到__点算迟交作业,应发践行红包__元。 4、作业雨当天__点后算未交作业,应发践行红包__元,需在__前发出,否则算出局,由值月生直接抱出群。 5、点评是...
8月14日凌晨,王宝强发表离婚声明,在其离婚声明中表示:“现因马蓉与我经纪人宋喆的婚外不正当两性关系,严重伤害了婚姻,破坏了家庭,郑重决定解除我与马蓉的婚姻关系,同时解除宋喆的经纪人职务。”声明中还表示:“我无论在生活中、工作中、社会交往中,都是一个对婚姻与家庭、对朋友与团...博客分类:
1。模拟死锁1。1。主表-- Create table
create table WDZ1
WDZ1ID NUMBER not null,
VARCHAR2(20)
alter table WDZ1
add constraint XXXXXX primary key (WDZ1ID);
1。2。从表(没有外健的索引)-- Create table
create table WDZ2
WDZ2ID NUMBER not null,
WDZ1ID NUMBER,
VARCHAR2(20)
-- Create/Recreate primary, unique and foreign key constraints
alter table WDZ2
add constraint XXXXX primary key (WDZ2ID)
alter table WDZ2
add constraint XXX foreign key (WDZ1ID)
references WDZ1 (WDZ1ID);
1。3。插入数据表到住表begin
into wdz1 values (1,'aa');
into wdz1 values(2,'aa2');
into wdz1 values (3,'aa3');
insert into wdz2 values(10,3,'wdz3--1');
1。4。在一个数据库seeesion里面插入数到从表,但是不提交事务begin
update wdz2
set memo='update wdz2 momo'
where wdz2id=10;
insert into wdz2 values(20,2,'wdz2--1');
对从表进行插入/修改记录,施加的锁也就是行级锁 1。5。在另外一个数据库seeesion里面删除 主表数据delete from wdz1 where wdz1id=1
这时候 程序会死锁,除非 上面的 对从表的 数据操作提交事务或者回滚事务。2。具体原因分析一个数据表的外键主要有3种方式来维护它自己和主表数据的一致性。(1)delete cascade例子如下:alter table WDZ2
add constraint XXX foreign key (WDZ1ID)
references WDZ1 (WDZ1ID)
(2)Set null例子如下:alter table WDZ2
add constraint XXX foreign key (WDZ1ID)
references WDZ1 (WDZ1ID)
(3)No action注意,这是oracle外键使用时候的默认选项。 例子如下:alter table WDZ2
add constraint XXX foreign key (WDZ1ID)
references WDZ1 (WDZ1ID);
以前出现死锁主要是我们认为,在 1。4。会对数据表wdz2进行施加行级锁,但是从表(wdz2)的外健是No action,删除主表(wdz1)不会去访问从表,更不会去锁定 wdz2表的记录或者对整个数据从表(wdz2)施加表级锁。事实上 oralce的No action 选项的字面意思欺骗了我们,oracle在删除主表的时候会去寻找所有以主表的主键作为外键的数据表,然后看去看从表是否有该外键的索引,如果没有则会对整个从表施加表级锁,然后对从表进行全表扫描。当然如果从表存在外键的索引,会去访问对应的索引,而不会对从表本身进行加锁。3。解决办法为从表的外键建立索引,这也是在使用外键的推荐方式。这样就能避免上面出现的问题了。
浏览: 29395 次
来自: 上海
楼主后来进盛付通了吗?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 oracle死锁解决 的文章

 

随机推荐