oracle锁表怎么解决,Oracle锁表问题的简捷处理技巧

在开发Oracle数据库时,我们常遇到频繁操作的Oracle数据表,会出现Oracle锁表。现在就针对这一问题,提下个人的解决Oracle锁表的技巧。

首先问题分析:

(1)锁的分析

ORACLE里锁有以下几种模式:

0:none

1:null 空

2:Row-S 行共享(RS):共享表锁,sub share

3:Row-X 行独占(RX):用于行的修改,sub exclusive

4:Share 共享锁(S):阻止其他DML操作,share

5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive

6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多。

1级锁有: S e l e c t , 有时会在v$locked_object出现。

2级锁有:Select for update,Lock For Update,Lock Row Share select for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select for update操作。

3级锁有:Insert,Update,Delete,Lock Row Exclusive 没有commit之前插入同样的一条记录会没有反应, 因为后一个3级的锁会一直等待上一个3级的锁,我们必须释放掉上一个才能继续工作。

4级锁有:Create Index, Lock Share locked_mode为2、3、4级锁,不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054错误。00054, 00000, "resource busy and acquire with NOWAIT specified" // *Cause: Resource interested is busy. //*Action: Retry if necessary.

5级锁有:Lock Share Row Exclusive 具体来讲有主外键约束时update / delete ... ; 可能会产生4,5的锁。

6级锁有:Alter table, Drop table, Drop Index,Truncate table, Lock Exclusive

(2)查询锁方法

以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句:

select t2.username,t2.sid,t2.serial#,t2.logon_time from

v$locked_object t1,v$session t2 where t1.session_id=t2.sid

order by t2.logon_time

如果有长期出现的一列,可能是没有释放的锁。

解决方法:

(1)释放锁的方法:

我们可以用下面SQL语句杀掉长期没有释放非正常的锁:

alter system kill session 'sid,serial#'; //sid,serial#是上面查询出来的

(2)系统级杀进程方法释放锁:

select spid from v$process where addr = (select paddr

from v$session where sid=&sid);$ kill -9 spid //spid是上面查询出来的

(3)注意点:如果出现了锁的问题, 某个DML操作可能等待很久没有反应。 当你采用的是直接连接数据库的方式,也不要用OS系统命令 $kill process_num 或者 $kill -9 process_num来终止用户连接,因为一个用户进程可能产生一个以上的锁,杀OS进程并不能彻底清除锁的问题。

【编辑推荐】

【责任编辑:瑞峰 TEL:(010)68476606】

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下恢复删除的逻辑分区

From:http://www.cnblogs.com/Spring/archive/2009/09/09/1563062.html 以前E盘分出一部分做过linux的分区,现在E盘空间不够用了,想增加空间,就到磁盘管理中,将之前的linux的逻辑分区删除了,删除后竟然发现整个E盘都没…

MVC PartialView

参考 Updating an MVC Partial View with Ajax RenderPartial vs RenderAction vs Partial vs Action in MVC Razor Adding a Custom Directory to Razor View Engine’s Partial View Locations in ASP.Net MVC3转载于:https://www.cnblogs.com/HQFZ/p/4560827.html

改变自己------每天进步一点点

改变自己------每天进步一点点 前端时间经常在51CTO上写博客,但因为其网站的DNS不稳定,导致很多次需要时都无法访问博客,最后放弃了在51CTO安家的想法,但网站今天说,DNS问题已经解决,所以决定以后就在51CTO…

GB4208中规定的外壳防护等级IP

外壳防护等级IP 经常看到仪器设备的介绍中包括防护等级,例如IP67,IP50等,不同的防护等级到底对应的是什么级别的防护呢,国标GB4208中有明确的规定。现摘录相关的描述,供查看。

如何对linux文件进行编译,linux编译和执行命令都有哪些?该如何实现?

我们知道,Linux是比如手机、平板电脑、路由器、台式计算机计算机设备的核心,它们都使用着Linux系统。以现在来说,一个合格的开发者必须要对Linux有一定的了解,那么,下面就跟小编一起来看看Linux是如何编译及执行的吧。…

如何给虚拟机上的linux系统添加虚拟硬盘

From: http://www.ezloo.com/2008/03/vmware_linux.html 给vmware虚拟机上的linux系统添加一个虚拟硬盘,并对硬盘进行分区、格式化、给分区创建文件系统,实现挂载,自动挂载! 步骤如下:保证你的linux系统处于关闭状态&a…

GB/T 17626 电磁兼容 试验和测量技术系列标准【归纳】

GB/T 17626 电磁兼容 试验和测量技术系列标准包括以下部分: GB/T 17626.1-2006 电磁兼容 试验和测量技术 抗扰度试验总论 GB/T 17626.2-2006 电磁兼容 试验和测量技术 静电放电抗干扰度试验 GB/T 17626.3-2006 电磁兼容 试验和测量技术 射频电磁场辐射抗干扰度试…

linux命令行打开写字板,在Linux操作系统中使用手写板

2009-07-28/14:24手写输入系统的出现拉近了大家与计算机之间的距离,使我们无须苦练输入法。此外,它也是绘画和平面设计爱好者手里的利器。Windows系统下使用手写板已经是司空见惯的事情了,但要在Linux中使用手写板呢?手写板和Linu…

音乐作曲类软件小记

ScordCloud cakewolk band in a box 水果 FL Studio Chordana Composer LogicX Pro转载于:https://www.cnblogs.com/passby/p/4561627.html

linux中fstab文件详解

From:http://www.winu.cn/space-14160-do-blog-id-1105.html 我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。/etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。在linux中/etc/fstab的数据项如下所示:/dev/device mountpoint type…

Linux 普通用户和超级用户的切换

ubuntu16环境下。 1、输入su - 2、输入sudo passwd root,修改root密码。 3、切换普通用户 输入 su - jianwang16

winfrom 图片互传

private void button1_Click(object sender, EventArgs e)//从硬盘打开图片显示在窗体里面{OpenFileDialog op new OpenFileDialog();//造一个打开对话框DialogResult dr op.ShowDialog();//将打开对话框显示出来if(drDialogResult.OK) //如果点的是"打开"{FileStre…

linux文件权限报错实例,自定义系统service SELinux权限报错

报错:E SELinux : avc: denied { add } for serviceflashlight pid3485 uid1000 scontextu:r:system_server:s0 tcontextu:object_r:default_android_service:s0 tclassservice_manager permissive1添加权限:android\out\target\product\product-xxx\r…

Silverlight动画制作之From/To/By基本动画

Silverlight动画制作之From/To/By基本动画From/To/By基本动画其中包含了三个最重要的属性:From;To;By。From指的是对象目标属性的起始值,To指的是对象目标属性的结束值,By指的是结束状态相对于起始状态的偏移量。这里我…

NFS配置管理

From: http://www.goooogle.com.cn/Article/NFS-configuration-and-management.aspx 1. NFS概述 NFS即网络文件系统,是主机间通过网络进行文件共享的网络协议,最早由Sun公司提出的,多用于Unix操作系统(Windows中也有相应版本的实现) 。 NFS…

svn相关操作

1. add操作 svn add 操作可以添加 转载于:https://www.cnblogs.com/bufferfly/p/4566305.html