oracle无会话锁表,深入浅出oracle锁 原理篇 停止无反应的sql会话
在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些共享资源的并发性访问串行化,oracle中的锁就可以提供这样的功能,当事务在对某个对象进行操作前,先向系统发出请求,对其加相应的锁,加锁后该事务就对该数据对象有了一定的控制权限,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作(可以做select动作,但select 利用的是undo中的前镜像数据了).
Oracle锁的分类
Oracle锁基本上可以分为二类
a:共享锁(share locks) 也称读锁,s锁
b:排它锁 (exclusive locks) 也称写锁,x锁
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。
按锁保护的内容分类
oracle提供多粒度封锁机制,按保护对象来分,据此又可以分为
a:dml锁, data locks 数据锁,用来保护数据的完整性和一致性
b:ddl锁, dictionary locks 字典锁,用来保护数据对象的结构,如table,index的定义
c:内部锁和闩 internal locks and latchs 用来保护数据库内部结构,如sga内存结构
dml锁
DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TM锁的种类有S,X,SR,SX,SRX五种,TX锁称为事务锁或行级锁。当Oracle执行delete,update,insert,select for update DML语句时,oracle首先自动在所要操作的表上申请TM类型的锁。当TM锁获得后,再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位(lb 即lock bytes)进行置位。在记录被某一会话锁定后,其他需要访问被锁定对象的会话会按先进先出的方式等待锁的释放,对于select操作而言,并不需要任何锁,所以即使记录被锁定,select语句依然可以执行,实际上,在此情况下,oracle是用到undo的内容进行一致性读来实现的。
在 Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。在数据行上只有X锁(排他锁),就是说TX锁只能是排他锁,在记录行上设置共享锁没有意义。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等
oracle无会话锁表,深入浅出oracle锁 原理篇 停止无反应的sql会话相关推荐
- Oracle锁表 行级锁 表级锁 行级锁
2019独角兽企业重金招聘Python工程师标准>>> Oracle锁表 行级锁 表级锁 ---- 行被排他锁定 ----在某行的锁被释放之前,其他用户不能修改此行 ...
- oracle数据库锁表很多,oracle锁表的原因_数据库
怎么修改oracle最大连接数_数据库 修改oracle最大连接数的方法是:首先登录数据库,并查看数据库进程的连接数:接着查询当前会话的连接数:最后用[alter system set process ...
- oracle未提交锁表,解决ORACLE锁表问题
转载备用 在ORACLE操作中经常会发生,尚未提交(或回滚)数据Session异常关闭的情况 会导致表中的某些数据被锁死. 解决办法是用sys登录后,先找出lock的Session. select o ...
- oracle 查询两张表合并,oracle的多表合并查询-工作心得
刚刚开发需求写了个SQL,记个笔记,学习下关于数据库的多表合并查询的用法 select t.* from A t UNION ALL/UNION/Intersect/MINUS select s.* ...
- oracle元数据存储在表空间,oracle db中数据和元数据的概念
本帖最后由 warehouse 于 2014-8-10 11:58 编辑 02年研究dw相关的产品和业务时第一次听说了元数据的概念,很多资料上是这样描述元数据的概念的:元数据是定义或者描述数据的数据. ...
- mysql数据库什么情况下会锁表_mysql数据库锁的产生原因及解决办法
数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性 ...
- mysql表copy锁表吗_MySQL锁(二)表锁:为什么给小表加字段会导致整个库挂掉?...
概述 表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持.最常使用的MYISAM与INNODB都支持表级锁定.表级锁定分为表共享 ...
- insert 锁表 mysql_mysql insert锁机制【转】
最近再找一些MySQL锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新 笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便 ...
- oracle 恢复 跳过 表空间,Oracle表空间恢复
如果误删除了一个表空间中test的数据文件test.dbf,然后下次重新启动数据库的时候发 数据库不能打开了(open), 老是报错:SQL> alter database open; ...
最新文章
- 阿里、腾讯基本薪资曝光,资深算法工程师24万美元,高级研究员26万美元
- CSMA/CD协议——学习笔记
- WinAPI: GetUserName - 获取当前用户名
- oracle 数据库数据迁移解决方案
- 使用jQuery插件realshadow实现超酷真实阴影效果
- gstat | 空间插值(三)——克里金插值之泛克里金和简单克里金
- C#/.net 中的事件与代理
- python 异常处理小结 try except raise assert
- 小米路由器mini刷老毛子教程
- qrc路径_Qt中的qrc文件
- 创建多线程(8种方式)
- 91卫图助手下载器永久免费啦!!
- 图片太大怎么压缩变小?教你四招快捷压缩图片
- 帝国cms 自动生成html,帝国CMS静态生成为一行代码教程
- 关于nvidia-smi和nvcc -V显示的cuda版本不一致的问题
- Coremail论客全球安全生态合作伙伴召集令正式启动
- HPUX系统启动后主机名为unknown的解决办法
- [转]gps中的广义和狭义相对论效应
- 交换element-ui中$confirm弹出框的确定和取消按钮位置
- 运维平台权限表结构设计
热门文章
- vue solt 属性浅析
- 区块链现状:最初的炒作消退,将迎来大量新应用(第一部分)
- 亿级流量系统架构之如何支撑百亿级数据的存储与计算
- python 学习之 WINDOWS 注册表学习(一)
- iOS之 随笔Xcode7的lipo
- performSelector:withObject:afterDelay: 精要概览(持续更新)
- 超级简洁的xml解析框架:TBXML
- CSS中expression怎么用? CSS expression详解
- php如何写代码禁用广告,不再显示广告案例(php操作cookie)
- excel loc() python_python pandas df.loc[]的典型用法