Oracle锁基本

锁:是一种资源,是一小块的内存。是为了控制并发中的串行操作。

如果从微观上讲是串行。

锁的类型:
           DML 锁

DDL  锁 数据字典锁

内部锁或Latch(mutex)

SQL> select distinct type from v$lock;
TY
--
KD
RD
AE
RT
RS
CF
XR
MR
PW
KT
TS

  

DML锁

TM锁 (表锁) 如果在修改一个表时,如果想删除,则会报资源正在忙

SQL> begin
             for  i in 1..100000
                              loop
                                   update t1 set t_pad = i;
                             end loop;
                   end;
                 /

  在另一个窗口drop table t1,会报ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

行锁

TM锁

时间: 2024-10-07 18:45:39

Oracle锁基本的相关文章

【锁】Oracle锁系列

[锁]Oracle锁系列 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 锁的概念.分类.及其模拟 ② 查询锁的视图及视图之间的关联 ③ 锁的参数(DML_LOCKS.DDL_LOCK_TIMEOUT) ④ FOR UPDATE及FOR UPDATE OF系列 ⑤ 带ONLINE和不带ONLINE创建索引的锁情况(是否阻塞DML操作) ⑥ 包或存过不能编译的解决方法

oracle 锁

问题如下: SQL> conn scott/[email protected]_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table student2; drop table student2 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效================

oracle 锁表 及 解锁

很久没有写博客了.不知道写什么 今天,让我清一张表的数据,结果清了之后,系统直接不动了,就好像服务器挂死了一样. 后来找了半天才发现,原来是我删除数据之后没有提交事物造成了数据库锁表,然后又不明白了, 什么是锁表呢,于是就上网去查 查了半天,大多数都是说怎么解决锁表和查询锁表的,但是只了解方法还不够,又想知道原理,于是 就继续往深里查查到了oracle的锁机制 由于数据库是多用户同时使用的共享资源,当多个用户并发的存取事物的时候,数据库中就会发生多个进程 同时操作同一个数据的情况,若对并发操作不

Oracle锁表查询和解锁方法

数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL

查询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_obj

Oracle锁总结

<oracle的锁> 在数据库中必须要了解的几点: 1.事务是数据库的核心,他们是好东西 2.应该延迟到适当的时刻才提交.不要太快提交,以避免对系统带来压力,这是因为,即使事务很长或很大,也一般不会对系统造成压力.相应的原则是:    在必要时才提交,不要提前.事务的大小只应该根据业务逻辑来定. 3.只要需要,就应该尽可能长时间的保持对数据所加的锁.这些锁是你能用的工具,而不是让你退避三舍,锁并不是什么稀有资源,恰恰相反,只要需要,    你就应该长期的保持数据上的锁.锁并不稀少,而且他们可以

oracle 锁的介绍 (转)

本文转自:http://blog.csdn.net/gyb2013/article/details/6929697 一.什么是锁: Oracle的锁机制是一种轻量级的锁定机制,不是通过构建锁列表来进行数据的锁定管理,而是直接将锁作为数据块的属性,存储在数据块首部.这个是通过ITL来实现的,一个事务要修改块中的数据,必须获得该块中的一个itl.关于itl(事务槽)的介绍可参考http://blog.csdn.net/gybyylx/article/details/6893639. 说明:在orac

Oracle锁表 行级锁 表级锁 行级锁

Oracle锁表  行级锁  表级锁 ---- 行被排他锁定 ----在某行的锁被释放之前,其他用户不能修改此行          ----使用 commit 或 rollback 命令释放锁 ----Oracle 通过使用 INSERT.UPDATE 和 SELECT-FOR UPDATE 语句自动获取行级锁 SELECT-FOR UPDATE 子句  ―在表的一行或多行上放置排他锁  ―用于防止其他用户更新该行 ―可以执行除更新之外的其他操作 ―select * from goods whe

oracle锁表

Oracle锁表比较简单,查询锁表的session杀掉就可以了. 1.以下几个为相关表 SELECT * FROM V$LOCK; SELECT * FROM V$SQLAREA; SELECT * FROM V$SESSION; SELECT * FROM V$PROCESS; SELECT * FROM V$LOCKED_OBJECT; SELECT * FROM ALL_OBJECTS; SELECT * FROM V$SESSION_WAIT; 2.查看被锁的表 SELECT B.OWN

ORacle锁

锁:用来共享资源控制并发访问的一种机制 锁由Oracle自动管理,锁持续的时间等于被提交事务处理的时间 单用户数据库不需要锁机制 锁类型 1.共享锁(shar locks)也称为读锁,s锁,共享数据,可以同时访问不允许修改. 2.排他锁(Exclusive Lock)也称为写锁,X锁,该事物单独获得此资源,另一事务不能在此事务提交之前获得相同对象的共享锁获排他锁.